create or replace procedure test_pro
(userid in number,username out varchar)  as
begin
select name into username from testpro where id=userid;
dbms_output.put_line(username);
end;
参数不能定义大小,并且后跟as

解决方案 »

  1.   

    create or replace procedure test_pro
    (userid  in number,username out varchar2)
    is
    begin
    select name into username from testpro where id=userid;
    dbms_output.put_line(username);
    end;above is right syntax , man
      

  2.   

    create or replace procedure test_pro
    (userid  in number,username out varchar2)
    is
    begin
    select name into username from testpro where id=userid;
    dbms_output.put_line(username);
    end;
    ------------------
    执行方法
    set serveroutput on
    var myname varchar2
    exec test_pro(2,:myname);
    ------
    打印结果
    print myname 
      

  3.   

    为什么create or replace procedure test_pro(userid in number,username out varchar2)
    is 正确, as 错误;
    -------------------
    这样调用还是出错:
    set serveroutput on
    var myname varchar2
    exec test_pro(2,:myname)
    PL/SQL:数值或值错误:字符缓冲太小
      

  4.   

    should 
    var myname varchar2(333333333);