具体情况如下:
存储过程:
create or replace procedure new_test(p1 varchar2,p2 varchar2) is
i int;
begin
i:=1;
end new_test;
测试脚本,PL/SQL DEVELOPER自动生成如下:
begin
  -- Call the procedure
  new_test(p1 => :p1,
           p2 => :p2);
end;
如上执行可以通过,但得到的p1/p2均为空,且不明我没有declare p1,它怎么能赋值给:p1?
修改如下:
begin
  -- Call the procedure
  new_test('1',
           '2');
end;
则错误:ORA-01036:illegal variable name/number,但在GOLDEN下可以执行。
如下修改:
begin
  -- Call the procedure
  new_test('1' => :p1,
           '2' => :p2);
end;
则错误:ORA-06550:line 3,column 3:
PLS-00306:wrong number or types of arguments in call to 'new_test'