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;
在测试这个函数的时候,返回的结果都不是动态从表中查询出来的!