试图通过函数调用实现动态sql

时间:2016-07-04 18:58:31

标签: plsql

我最近在我的cide中实现了动态sql并且对这个概念很新。我正在尝试使用以下函数来获取列名并通过动态函数调用更新值。但是,该函数在编译时发出错误。请找到如下代码:

function upd_tab(col_name in varchar2,val in number)
return pls_integer
is
BEGIN
EXECUTE IMMEDIATE 'UPDATE EMPLOYEE1 SET '||col_name||'= :THE_VALUE WHERE EMP_NAME IN(:NAME1,:Nme2)'
using val,john,aaron;
RETURN SQL%ROWCOUNT;
END;

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这里你必须在using子句中声明变量。希望在片段下方有所帮助。

FUNCTION upd_tab(
    col_name IN VARCHAR2,
    val      IN NUMBER)
  RETURN pls_integer
IS
BEGIN
  EXECUTE IMMEDIATE 'UPDATE EMPLOYEE1 SET '||col_name||'= :THE_VALUE WHERE EMP_NAME IN(:NAME1,:Nme2)' USING val,'john','aaron';
  RETURN SQL%ROWCOUNT;
END;