为什么它不起作用?我在oracle中运行它 . 我想创建一个这样的程序:
CREATE OR REPLACE PROCEDURE ME( X in NUMBER )IS
declare
num1 number;
BEGIN
num1:=1;
insert into a (year) values(7);
END;
这是错误:
PLS-00103:当期望以下之一时遇到符号“DECLARE”:开始函数编译指示过程子类型类型当前游标删除存在先于外部语言符号“开始”替换为“DECLARE”继续 . 7/5 PLS-00103:当遇到以下情况之一时遇到符号“文件结束”:(如果循环模式为空循环异常退出,则返回选择更新,同时使用<< continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
2 回答
DECLARE
仅用于匿名PL / SQL块和嵌套PL / SQL块 . 你不会't use it when you'重新声明一个程序 . 假设表A
存在列YEAR
,类似于在语法上是有效的 . 当然,代码有各种各样的问题...你拿一个你不使用的参数,你声明一个你不使用的局部变量,程序的名称与程序没有关系做等等
试试吧