[color=#0000FF]想要实现的功能:
过程传入参数:一个表名
然后得到此表中的记录数count 输出dbms_output.put_line(count)
不知道是否可以写为过程。
??[/color]

解决方案 »

  1.   


    create or replace procedure sp_test(i_tablename in varchar2)
    as
      iRowcount int;
    begin
      execute immediate 'select count(*) from '||i_tablename into iRowCount;
      dbms_output.put_line(iRowCount);
    end; 
      

  2.   

    同意:
    create or replace procedure sp_test(i_tablename in varchar2)
    as
      iRowcount int;
    begin
      execute immediate 'select count(*) from '||i_tablename into iRowCount;
      dbms_output.put_line(iRowCount);
    end;
      

  3.   

    create or replace procedure calCounts(tablename char)
    as
    counts number;
    begin
    select count(*) into counts from tablename;
    dbms_output.put_line(counts);
    end calCounts;我写成这样子 不行?? 和你的区别在于哪里?
      

  4.   

    你的tablename是变量,不能直接用在select from后面,只能通过动态SQL来执行
      

  5.   

    create or replace procedure getcount(table_name in varchar2) as  
     num number;  
     sql_state varchar2(300);
     begin  
     sql_state := 'select count(*) from '||table_name;
     execute immediate sql_state into num;
     dbms_output.put_line(num);
     end;