declare
str varchar2(2000);
x number;
begin
str:='select count(*) into '||x||' from table'; 
return x;
end;

解决方案 »

  1.   

    你还没执行怎么去返回X加个
    execute immediate str
      

  2.   

    declare
    str varchar2(2000);
    x number;
    begin
    str:='select count(*) into '||x||' from table';
    execute immedaite str
    return x;
    end;
      

  3.   

    declare
      x number;
    begin
      select count(*) into x from dba_users;
      dbms_output.put_line(x);
    end;
    /或这样
    declare
      str varchar2(200);
      x number;
    begin
      str := 'select count(*)  from dba_users';
      execute immediate str into x;
      dbms_output.put_line(x);
    end;
      

  4.   


    不能这样,可以通过动态sql来做declare
     str varchar2(2000);
     x number;
     begin
     str:='select count(*) from table';
     execute immediate str into x; 
     return x;
     end;
    /或者是使用动态游标declare
    type T_CUR is ref cursor;
    v_cur T_CUR;
    str varchar2(2000);
    x number;
    begin
    str:='select count(*) from table';
    open v_cur for str;
    fetch v_cur into x;
    close v_cur;
    return x;
    end;
    /