Ich habe eine Funktion, die Tabellen eingefügt und aktualisiert. Der Aufruf aus:Oracle: Rufen Sie eine Funktion von "aus Dual wählen" nichts tun
select AGENTS_REGISTRATION() from dual;
oder:
declare
x NUMBER;
begin
select AGENTS_REGISTRATION() into x from dual;
end;
/
nichts tun. Ein anderes Formular führt die notwendigen Änderungen durch:
declare
x NUMBER;
begin
x := AGENTS_REGISTRATION();
end;
/
Was ist falsch mit den ersten beiden Ausdruck?
Was meinst du mit 'nichts tun'? Da DML in einer Abfrage nicht zulässig ist, sollten Sie den Fehler ORA-14551 erhalten haben. –
Ich führe Ausdrücke in Oracle SQL Developer aus, bekomme aber kein ORA-14551. Ich sehe, dass Leute * geschrieben haben. Sie können keine Funktion verwenden, die Daten in einer ** Select ** -Anweisung * ändert. Können Sie Ihren Kommentar als Antwort hinzufügen? Wusste das nicht .... – gavenkoa
Es ist nicht erlaubt, DML-Operationen innerhalb einer Funktion durchzuführen. Wenn Sie, wie Sie sagen, "es tut nichts", dann gibt es wahrscheinlich "wenn andere dann null" oder eine andere Art von Ausnahmebehandlungskonstrukt, die "ORA-14551" Fehler unterdrückt. –