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

Gespeicherte Prozedur mit mehreren IN-Parametern

Rufen Sie in einem SQL-Arbeitsblatt Ihre Prozedur von einem anonym auf blockieren :

begin
  create_indexes (
    tbl_name_index    => 'TABLE_NAME',
    tbl_name_vehicle  => 'Vehicle name',
    tbl_name_dealer   => 'value 3',
    tbl_name_hst      => 'value 4',
    tbl_name_dms      => 'value 5',
    tbl_name_usertype => 'value 6',
    tbl_name_search   => 'value 7');
end;
/

Wie Jeffrey Kemp angemerkt hat, ist es eine gute Idee, die benannte Parameternotation und nicht die Positionsnotation zu verwenden. es macht es klarer, hilft, Fehler zu vermeiden (insbesondere die falsche Reihenfolge der Argumente), kann die Auswirkungen zukünftiger Änderungen an der Prozedur reduzieren und ist flexibler, wenn Sie Parameter mit Standardwerten haben - so können Sie alle überspringen, die Sie nicht haben explizit festlegen möchten.

Sie können auch den execute verwenden Befehl als Abkürzung, aber mit vielen Parametern ist es wahrscheinlich einfacher, sich an einen anonymen Block zu halten - es ist sowieso das gleiche unter der Haube. Ein Großteil der SQL*Plus-Dokumentation galt auch für SQL Developer.

Die SQL Developer-Dokumentation zeigt Ihnen auch, wie Sie und ausführen eine Prozedur debuggen .

Wenn dies Ihr erster Ausflug in PL/SQL ist, lohnt es sich möglicherweise, die Dokumentation . Ich bin mir nicht sicher, wohin Sie mit dem von Ihnen gezeigten Code gehen. es scheint etwas verwirrt zu sein. Es ist ungewöhnlich, Objekte wie Indizes in PL/SQL zu erstellen, da sie einmal erstellt werden sollten, wenn das Schema erstellt oder aktualisiert wird, daher erscheint es etwas sinnlos, es als wiederverwendbaren Code zu haben.