Erstellen der Gespeicherten Prozedur in Oracle 11g-pl/sql zu verwenden, WENN und DANN

Ich hatte ein Problem erstellen dieser gespeicherten Prozedur und hatte einige Fehler bei der Ausführung. Fehler Bestand in der SQL-Anweisung ignoriert und der SQL-Befehl nicht korrekt beendet. Ich dachte alle, der code war ziemlich sauber.

  • Gibt die gesamten Datensätze und fügt Sie in die RECORD_COUNT variable aus der Tabelle "TABELLE1".
  • Zustand zu sehen, wenn RECORD_COUNT ist größer als null und speichert Daten zu löschen Tabelle "TABELLE1".
  • Zustand zu sehen, wenn RECORD_COUNT gleich null ist, um das einfügen in die Tabelle "TABELLE1" aus der EXTERNAL_TABLE Tabelle.

Bitte helfen.

    CREATE OR REPLACE PROCEDURE sp_INSERT
    (RECORD_COUNT OUT NUMBER)
    IS
    BEGIN   

         SELECT COUNT(*) 
             INTO RECORD_COUNT
             FROM TABLE1;   

         IF RECORD_COUNT > 0 THEN 
             EXECUTE IMMEDIATE 'TRUNCATE TABLE TABLE1'
         END IF;     

        IF RECORD_COUNT = 0 THEN 
        INSERT INTO TABLE1
            (
                JOB_ID,                         
                NUM_SP1,              
                NUM_SP2,              
                NUM_SP3,              
                NUM_SP4,                         
            )
            (SELECT JOB_ID,               
                NUM_SP1,              
                NUM_SP2,              
                NUM_SP3,              
                NUM_SP4,              
            FROM EXTERNAL_TABLE)
        COMMIT;
        END IF;
    END;
Hi, die Fehlermeldungen sollten helfen - Sie geben Zeilennummern. Sie verpassen eine Anzahl von Semikolons und TRUNCATE ist DDL und kann daher nicht vorgeformt werden in PL/SQL außerhalb von dynamischem SQL.

InformationsquelleAutor Fabe Dole | 2013-10-01

Schreibe einen Kommentar