如果没有输出变量,简单一些:
sql> exec p_test('abc', 123);这样就ok了

解决方案 »

  1.   

    如果没有输出变量,简单一些:
    sql> exec p_test('abc', 123);这样就ok了
      

  2.   

    1.定义一个输出变量:var myvar number;
    2.执行 exec myprocedure(var1,:myvar);
    3.若是function则还要定义返回变量var ret number;
      再 exec :ret:=myfunction(var1,:myvar);
      

  3.   

    对了,输入变量则可以直接赋值,如f-ky的例子
      

  4.   

    declare
      in1 varchar2(30);  --输入变量
      out1 varchar2(3);  --输出变量
    begin
      exec myproc(in1,out1);
    end;
      

  5.   

    declare
      in1 varchar2(30);  --输入变量
      out1 varchar2(3);  --输出变量
    begin
      exec myproc(in1,out1);
    end;
      

  6.   

    完整例子:
    建表:
    create table test_csdn(
    id number,
    test varchar2(100))
    插数据:insert into test_csdn values(1,'aaa')
    建存储过程:
    create or replace procedure bb(a1 in integer,a2 out varchar2) is
    begin
         select test
         into a2
         from test_csdn
         where id=a1;
    end bb;sqlplus中显示:
    SQL> set serveroutput on
    SQL> declare
      2    i varchar2(100);
      3  begin
      4    bb(1,i);
      5    dbms_output.put_line(i);
      6  end;
      7  /
    aaa  
    PL/SQL 过程已成功完成。