有人告诉我,我可以declare在存储过程的声明部分中省略关键字。declare声明部分的关键字是可选的吗?如果是,那它为什么会存在?
create or replace procedure myproc is
-- starting Declaration section
DECLARE -- is DECLARE keyword optional? Can i omit it here?
cursor mycursor as
select ...;
var1 number;
var2 varchar2;
-- end of Declaration section
BEGIN
...
END myproc;
Run Code Online (Sandbox Code Playgroud)
以下是创建 pl/sql 过程的语法。变量和游标的声明是根据需要而不是强制性的。所以如果你想声明然后声明 else 忽略:
CREATE [OR REPLACE] PROCEDURE procedure_name
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];
Run Code Online (Sandbox Code Playgroud)
还想添加该Declare关键字未在过程中使用,因为声明块隐含在那里。
编辑:对于声明块不是隐式的情况,存在声明关键字。假设匿名块,现在您需要指定声明块,否则将没有地方声明变量。
匿名块的语法:
DECLARE
<constant name> CONSTANT <data type> := <value>;
<constant name> CONSTANT <data type> DEFAULT <value>;
BEGIN
<valid statement>;
EXCEPTION
<exception handler>;
END;
Run Code Online (Sandbox Code Playgroud)