sql >> Databasteknik >  >> RDS >> Oracle

Lagrad procedur med flera IN-parameter

Från ett SQL-kalkylblad, anropa din procedur från en anonym blockera :

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 noterade är det en bra idé att använda den namngivna parameternotationen och inte positionsbeteckningen; det gör det tydligare, hjälper till att undvika misstag (särskilt att få ordning på argumenten fel), kan minska effekten av framtida ändringar av proceduren och är mer flexibel när du har parametrar med standardvärden - så att du kan hoppa över alla du inte gör vill uttryckligen ställa in.

Du kan också använda execute kommando som en genväg, men med många parametrar är det nog lättare att hålla sig till ett anonymt block – det är likadant under huven i alla fall. Mycket av SQL*Plus-dokumentationen tillämpades också på SQL Developer.

SQL-utvecklardokumentationen visar dig också hur du kör och felsöka en procedur .

Om det här är din första satsning på PL/SQL kan det vara värt att granska dokumentation . Jag är inte säker på vart du är på väg med koden du har visat; det verkar vara lite förvirrat. Det är ovanligt att skapa objekt som index i PL/SQL eftersom de borde byggas en gång när schemat skapas eller uppdateras, så att ha det som återanvändbar kod verkar lite meningslöst.




  1. Hur man upprätthåller unika över flera tabeller

  2. Hur kan jag få de unika tecknen från en sträng i Oracle?

  3. När ingen 'Beställ efter' är angiven, vilken ordning väljer en fråga för din postuppsättning?

  4. PHP:mysql-frågan hoppade över/ignoreras efter stora filuppladdningar?