具体情况如下:
存储过程:
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'

解决方案 »

  1.   

    my_test(param1 =>'1',param2 =>'2')
      

  2.   

    同意nicholaz(欲上青天揽明月) 
    在调试的时候下面有个窗口让你输入参数。
      

  3.   

    我选择了整理FAQ,想让各位多拿点分,但不知为什么这里全是0分,
    nicholaz我给了90分
    zhenyukeji我给了10分。
    为什么没有。大家千万别怪我.我已经投诉了。
      

  4.   

    现在终于给分了,nicholaz谢谢你,金豆子吃得舒不舒服?