【发布时间】:2016-11-08 01:51:14
【问题描述】:
CREATE OR REPLACE FUNCTION XXCHR_UPDATE (
P_SALESREP_ID IN NUMBER,
p_COLUMN_NAME IN VARCHAR2,
P_COLUMN_VALUE IN varchar2
)
RETURN VARCHAR2
IS
lv_dyn_sql VARCHAR2(2000):= NULL;
BEGIN
lv_dyn_sql := 'UPDATE thirty_days
SET attribute86 ='||p_COLUMN_NAME||',attribute87 ='||P_COLUMN_VALUE
|| 'WHERE SALESREP_ID = :1';
EXECUTE IMMEDIATE lv_dyn_sql using P_SALESREP_ID;
return(1);
EXCEPTION
WHEN OTHERS
THEN
dbms_output.put_line('Returning Error : '||SQLERRM);
--lv_return_val:= 0;
RETURN SQLERRM;
END XXCHR_UPDATE;
当我执行这个函数时,它的返回错误
ORA-14551
请在这里推荐
【问题讨论】:
-
你用这个函数做什么。
select XXCHR_UPDATE (a,b,c) from dual;? -
也许您需要在 dyn sql 中添加引号?因为输出sql字符串的时候可以看到什么attribute87=attr,但是需要attribute87='attr'
-
已经问过:stackoverflow.com/questions/8729236/… 顺便说一句,您似乎在
p_column_value和where子句之间缺少一个空格。