在Oracle中创建过程

2022-08-25 00:00:00 sql oracle11g oracle procedure

为什么它不起作用? 我在甲骨文里运行这个。 我想创建一个这样的过程:

CREATE OR REPLACE PROCEDURE ME( X in NUMBER )IS  
declare 
num1 number;
BEGIN  
num1:=1;
insert into a (year) values(7);    
END; 

这是错误:

LS-00103:在需要以下内容之一时遇到符号"DECLARE": Begin函数杂注过程子类型类型 当前游标删除 存在先前的外部语言 "声明"改为"开始"继续。 7/5偏最小二乘法-00103:遇到符号"文件结束",但预期出现以下情况之一: (BEGIN CASE声明END EXCEPTION EXIT for Goto IF循环模式 空编译指示RAISE RETURN SELECT UPDATE WITH <;<;继续关闭当前删除获取锁 INSERT OPEN ROLLBACK SAVEPOINT SET SQL EXECUTE COMMIT FOR ALL 合并管道清除


解决方案

DECLARE仅用于匿名PL/SQL块和嵌套的PL/SQL块。当您声明一个过程时,您不会使用它。假设表A存在一个列YEAR,类似于

CREATE OR REPLACE PROCEDURE ME( X in NUMBER )
IS  
  num1 number;
BEGIN  
  num1:=1;
  insert into a (year) values(7);    
END; 

在语法上是有效的。当然,代码有各种各样的问题……您接受一个不使用的参数,声明一个不使用的局部变量,过程的名称与过程的作用无关,等等。

相关文章