set serverout on
var v_rol number
var v_ar varchar2(100)
var v_name varchar2(100)
execute ('343',:v_rol,:v_ar,:v_name);
print v_rol
pint v_ar
print v_name

解决方案 »

  1.   

    BEGIN ('liliang',:v_rol,:v_ar,:v_name); END;      *
    ERROR 位于第 1 行:
    ORA-06550: 第 1 行, 第 7 列:
    PLS-00103: 出现符号 "("在需要下列之一时:
    begin case declare exit for
    goto if loop mod null pragma raise return select update while
    with <an identifier> <a double-quoted delimited-identifier>
    <a bind variable> << close current delete fetch lock insert
    open rollback savepoint set sql execute commit forall merge
    <a single-quoted SQL string> pipe
    符号 "case" 被替换为 "(" 后继续。
    ORA-06550: 第 1 行, 第 39 列:
    PLS-00103: 出现符号 ";"在需要下列之一时:
    * & = - + < / > at in is mod
    not rem when <an exponent (**)> <> or != or ~= >= <= <> and
    or like between overlaps || year DAY_     V_ROL
    ----------V_AR
    --------------------------------------------------------------------------------------------------------------------------------V_NAME
    --------------------------------------------------------------------------------------------------------------------------------
      

  2.   

    SQL> create or replace procedure test_out(v_in in integer,v_out out string)
      2  as
      3  str string(100);
      4  v_i integer;
      5  begin
      6    dbms_output.put_line(to_char(v_in));
      7    v_out:=to_char(v_in);
      8  end test_out;
      9  /过程已创建。SQL> set serveroutput o
    SQL> declare
      2  out string(100);
      3  begin
      4   test_out(999,out)
      5* end;
    SQL> /
    999PL/SQL 过程已成功完成。