在oracle中创建过程

use*_*345 0 sql oracle procedure oracle11g

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

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

这是错误:

PLS-00103:在期望以下其中一项时遇到符号“DECLARE”:开始函数杂注过程子类型类型当前光标删除存在先前的外部语言符号“开始”已替换为“DECLARE”以继续。7/5 PLS-00103:当期望出现以下其中一项时遇到符号“文件结束”:( begin case声明结束异常 exit for goto ifloop mod null pragma raise return select update while with << continue close current delete获取锁插入打开回滚保存点设置sql执行提交forall合并管道清除

Jus*_*ave 6

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; 
Run Code Online (Sandbox Code Playgroud)

在语法上是有效的。当然,代码存在各种各样的问题......你采用了一个你不使用的参数,你声明了一个你不使用的局部变量,过程的名称与过程的内容没有关系确实如此,等等