Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle fügt in Tabelle2 ein und löscht dann aus Tabelle1, Ausnahme, wenn Fehler auftritt

diese stmt funktioniert ohne die where-Klausel

Das könnte daran liegen, dass die Zeichenfolgen beim Verketten implizit konvertiert werden und Ihre Where-Bedingung zur Laufzeit fehlschlägt. Versuchen Sie es mit USING -Klausel mit Bind-Variablen.

stmt_ins:= 'INSERT  INTO ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where ' || dt_criado || ' < :dt ' ;

EXECUTE IMMEDIATE stmt_ins USING SYSDATE;