Wie erstellen Sie eine Prozedur in einer oracle-sql-Skript und verwenden Sie es in das Skript?

Ich möchte erstellen Sie eine Skript für meine oracle DB, die Tropfen Tabellen. Wenn die Tabelle nicht existiert, wird das Skript nicht beenden fehlschlagen, drucken Sie einfach einen text ein: "nicht existiert".

Dem Skript ist die folgende:

BEGIN
    EXECUTE IMMEDIATE 'DROP TABLE mytable';
    DBMS_Output.Put_Line(' table dropped');
EXCEPTION WHEN OTHERS THEN
    IF SQLCODE = -942 THEN
        DBMS_Output.Put_Line(' table not exists');
    ELSE
        DBMS_Output.Put_Line(' Unknown exception while dropping table');
        RAISE;
    END IF;
END;

Will ich fallen eine Menge-Tabelle in ein Skript, und ich will nicht diese Zeilen schreiben, mehr als einmal.

Gibt es eine Möglichkeit, es zu schreiben, um eine Prozedur oder Funktion die bekommt einen parameter (den Namen der Tabelle), und rufen Sie diese Prozedur im Skript?

Vielleicht so etwas wie dieses:

drop_table_procedure('mytableA');
drop_table_procedure('mytableB');

Oder vielleicht ein Verfahren, das bekommt eine Undefinierte Größe der Liste (wie in java: String ... Tabellennamen):

drop_tables_procedure('mytableA','mytableB');

Bitte geben Sie mir einige Beispiele.
Danke!

  • Eine Prozedur erstellen, und übergeben Sie den Tabellenname als ein parameter. Und dann in einen anonymen block, führen alle Verfahren.
InformationsquelleAutor victorio | 2015-11-18
Schreibe einen Kommentar