我需要测试在is
块中具有几个子过程的存储过程。我已将所有内容复制到测试窗口,但是,将这些子过程放在declare
块中似乎无效。当我尝试从begin
块调用它们时,收到一条错误消息,指出它们尚未声明。除了将is
的内容移动到declare
之外,我没有做任何其他更改。我该怎么办?
但是您可以声明过程:
1)您声明时不带“创建或替换”关键字2)如果在同一块中声明任何变量,则必须在最后一个变量声明之后声明所有过程和函数。
例如,这个:
declare
some_text varchar2(10) := 'SOME_TEXT';
procedure print_4 is
x number := 4;
begin
dbms_output.put_line(x);
end print_4;
begin
print_4;
end;
是有效的pl / sql块,而这是:
declare
procedure print_4 is
x number := 4;
begin
dbms_output.put_line(x);
end print_4;
some_text varchar2(10) := 'SOME_TEXT';
begin
print_4;
end;
不是。
如果发布代码,我们可能还会发现其他错误。