sql >> Database teknologi >  >> RDS >> Oracle

Lagret procedure med flere IN-parametre

Fra et SQL-regneark skal du kalde din procedure fra en anonym blokere :

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;
/

Som Jeffrey Kemp bemærkede, er det en god idé at bruge den navngivne parameternotation og ikke positionsnotation; det gør det klarere, hjælper med at undgå fejl (især at få rækkefølgen af ​​argumenter forkert), kan reducere virkningen af ​​fremtidige ændringer af proceduren og er mere fleksibel, når du har parametre med standardværdier - så du kan springe over alle, du ikke eksplicit ønsker at indstille.

Du kan også bruge execute kommando som en genvej, men med en masse parametre er det nok nemmere at holde sig til en anonym blok – det er i hvert fald det samme under motorhjelmen. Meget af SQL*Plus-dokumentationen gjaldt også for SQL Developer.

SQL-udviklerdokumentationen viser dig også, hvordan du udfører og fejlfinde en procedure .

Hvis dette er dit første indtog i PL/SQL, kan det være værd at gennemgå dokumentation . Jeg er ikke sikker på, hvor du vil hen med den kode, du har vist; det ser ud til at være lidt forvirret. Det er usædvanligt at oprette objekter som indekser i PL/SQL, da de skal bygges én gang, når skemaet oprettes eller opdateres, så det virker lidt meningsløst at have det som genanvendelig kode.




  1. Bedste måde at undgå duplikatindtastning i mysql-databasen

  2. Qt-applikation går ned, når du bruger ODBC-driver (macOS)

  3. Django modellerer en fremmednøgle til mange borde

  4. hvordan man eksporterer dataramme (R) til Oracle-tabellen