0
Ich muss die Datensätze ID-Nummer & entry_time aktualisieren. In dieser Tabelle gibt es keinen Primärschlüssel. Kann mir jemand helfen, diese truncate-Einsatz zu konvertieren Anweisung zu fusionieren:So ersetzen Sie truncate-einfügen mit Merge-Klausel in pl/sql
CREATE OR REPLACE PACKAGE BODY PK_ENTRY_TIME IS
PROCEDURE PROC_ENTRY_TIME
AS
BEGIN
execute immediate 'truncate table TABLE_ENTRY_TIME';
insert into TABLE_ENTRY_TIME SELECT TABLE_CASE.ID_NUMBER , TABLE_ACT_ENTRY.ENTRY_TIME
FROM SA.TABLE_CASE TABLE_CASE INNER JOIN SA.TABLE_ACT_ENTRY TABLE_ACT_ENTRY
ON TABLE_CASE.OBJID = TABLE_ACT_ENTRY.ACT_ENTRY2CASE
commit;
END PROC_ENTRY_TIME;
END PK_ENTRY_TIME;
Warum Sie statt truncate + Insert verwenden wollen fusionieren ? – krokodilko
Sie können ein 'MERGE' nicht ohne Primärschlüssel ausführen. Wenn in der Reihe der Zeilen, in die Sie eingemischt werden, Duplikate vorhanden sind, erhalten Sie den Fehler ORA-30926 (es ist nicht möglich, in den Quelltabellen eine stabile Reihe von Zeilen zu erhalten). –