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;
Wenn ich diese Funktion ausführen seine Rückkehr FehlerORA-14551: Kann keinen DML-Vorgang in einem Abfragefehler durchführen, während sofort mit Execute
ORA-14551
bitte vorschlagen hier
[Wie frage ich ** gut ** Frage?] (Http://stackoverflow.com/help/how-to-ask) –
Was tun Sie mit diese Funktion. 'wähle XXCHR_UPDATE (a, b, c) aus dual;'? –
vielleicht müssen Sie Zitate in Ihrem Dyn SQL hinzufügen? Denn wenn Sie sql string ausgeben, können Sie sehen, welches Attribut 87 = attr, aber müssen attribute87 = 'attr' –