create procedure pro(rowName in varchar2,tableName in varchar2,INTROWCOUNT OUT NUMBER)
as
str varchar2(100);
begin
str:='select MAX('||rowName||') FROM '||tableName;
execute immediate str into introwcount;
……
end;

解决方案 »

  1.   

    需要用到动态sql处理。先构造sql语句的字符串,然后用execute语句。
      

  2.   

    你建的是procedure,怎么可以return
      

  3.   

    CREATE OR REPLACE PROCEDURE TU.AG1(tableName IN VARCHAR2,rowName IN VARCHAR2, RowCount OUT NUMBER) 
    AS
    strRowCount   VARCHAR2(8);
    intRowCount   NUMBER;
    SQLQUERY      VARCHAR2(100);
    BEGIN
      SQLQUERY := 'SELECT MAX(' || rowName || ') FROM ' || tableName;
             EXECUTE IMMEDIATE SQLQUERY INTO strRowCount;
    intRowCount := TO_NUMBER(strRowCount);
    RowCount := intRowCount + 1;
    RETURN;
    END;
      

  4.   

    错了,笔误.
    RETURN; 不要.