我正在Oracle中创建存储过程,其中一个是永久创建的,另一个是在服务于其目的后暂时创建并消失。如果它正常工作,请在使用时及其创建方式提供指导。
----这不是在DB中创建的,只是暂时创建并消失
DECLARE name varchar2(10);
PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
BEGIN
name := 'Joe';
printVal(name);
END;
/
----这是在DB中创建的,永久可用
create PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
答案 0 :(得分:4)
要理解,请将sql分为两部分。
存储过程:
匿名阻止:
{{1}}
答案 1 :(得分:3)
嗯,显然有不同的语法 - 第一个是匿名块,第二个创建存储过程。预期的行为正是您所观察到的,并且由Oracle PL / SQL文档涵盖。 https://docs.oracle.com/cloud/latest/db112/LNPLS/overview.htm#LNPLS141