日期:2014-05-16  浏览次数:20517 次

oracle函数表名作为参数输入报错
     发帖求助,oracle函数中,把一个表名当作一个参数输进来的时候,那个动态组合的sql语句在转义的时候,出了问题。我把这个问题贴出来,请高手指教!

函数的源代码:
CREATE OR REPLACE FUNCTION FGET_WFID(P_BUILDNO IN VARCHAR2,TABLENAME IN VARCHAR2)
  RETURN VARCHAR2
AS
  LRET  VARCHAR2(20);
  V_STRSQL VARCHAR2(200);
BEGIN
   V_STRSQL :='SELECT WF_ID  FROM '|| TABLENAME ||' WHERE BUILD_NO='||P_BUILDNO||' INTO LRET';
   Execute immediate V_STRSQL;
   RETURN LRET;
EXCEPTION WHEN OTHERS THEN
   RETURN P_BUILDNO;
END;

在测试这个函数的时候,返回的结果都不是动态从表中查询出来的!
1 楼 hzweiour 2010-11-16