我想实现的是传入一个表名,一个数字型的列名,返回该列的最大值.函数是:
CREATE or replace FUNCTION f_hoa_getNextID(tableName IN varchar2,colID IN varchar2 )
RETURN NUMBER
IS
NextIDValue NUMBER(10);
SqlString varchar2(500);
BEGIN
SqlString := 'Select nvl(max('|| colID ||'),0) into '|| NextIDValue || ' from ' ||tableName;
execute immediate Sqlstring;
RETURN (NextIDValue + 1);
END;是不是SqlString := 'Select nvl(max('|| colID ||'),0) into '|| NextIDValue || ' from ' ||tableName;
错了啊,我用
SqlString := 'Select '|| NextIDValue || ':=nvl(max('|| colID ||'),0) from ' ||tableName;
也不行.帮帮啊
CREATE or replace FUNCTION f_hoa_getNextID(tableName IN varchar2,colID IN varchar2 )
RETURN NUMBER
IS
NextIDValue NUMBER(10);
SqlString varchar2(500);
BEGIN
SqlString := 'Select nvl(max('|| colID ||'),0) into '|| NextIDValue || ' from ' ||tableName;
execute immediate Sqlstring;
RETURN (NextIDValue + 1);
END;是不是SqlString := 'Select nvl(max('|| colID ||'),0) into '|| NextIDValue || ' from ' ||tableName;
错了啊,我用
SqlString := 'Select '|| NextIDValue || ':=nvl(max('|| colID ||'),0) from ' ||tableName;
也不行.帮帮啊
execute immediate Sqlstring into NextIDValue ;
using 绑定变量列表
execute immediate Sqlstring into NextIDValue ;