Wie führe ich mehrere Skripte nacheinander in Oracle?

Habe ich das folgende Skript:

ALTER TABLE ODANBIRM 
ADD (OBID NUMBER(10, 0) );
----------------------------------------------------------------------------
CREATE OR REPLACE TRIGGER TR_OB_INC 
BEFORE INSERT ON ODANBIRM
FOR EACH ROW 
BEGIN
  SELECT SEQ_OB.NEXTVAL INTO :NEW.OBID FROM DUAL;
END;

-----------------------------------------------------------------------------

DECLARE
CURSOR CUR IS
SELECT ROWID AS RID FROM ODANBIRM;

  RC CUR%ROWTYPE;
BEGIN
  OPEN CUR;

 LOOP
  FETCH CUR INTO RC;

    EXIT WHEN CUR%NOTFOUND;

  UPDATE ODANBIRM SET OBID=SEQ_OB.NEXTVAL WHERE ROWID=RC.RID;
   END LOOP;

 CLOSE CUR;
  COMMIT;
 END;

Wie Sie sehen können, habe ich drei verschiedene scripts (ich habe Sie getrennt mit gestrichelten Linien.) Wenn ich das erste script läuft aber das zweite Skript, wo ich will, um erstellen Sie einen trigger nicht sagen "Begegnet symbol "ERKLÄREN"". Wenn ich das trigger-Skript zum erstellen Weg bekomme ich keine Fehler und der erste und der Letzte Skripte laufen mit kein problem. Was muss ich tun, um Sie laufen alle ohne Fehler?

EDIT: habe ich dann realisiert, dass das zweite Skript sollte genau so sein wie dieser:

UPDATE ODANBIRM SET OBID=SEQ_OB.NEXTVAL;

Damit diese einfache Sache in einer Schleife ist eine Verschwendung von Zeit und ineffizient. Ich habe einmal gehört, dass man SQL verwenden Sie so viel und so wenig PL SQL wie möglich für Effizienz. Ich denke, es ist eine gute Idee.

Schreibe einen Kommentar