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

Stored procedure con più parametri IN

Da un foglio di lavoro SQL, chiama la tua procedura da un anonimo bloccare :

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

Come ha notato Jeffrey Kemp, è una buona idea usare la notazione del parametro denominato e non la notazione posizionale; lo rende più chiaro, aiuta a evitare errori (in particolare a sbagliare l'ordine degli argomenti), può ridurre l'impatto di modifiche future alla procedura ed è più flessibile quando hai parametri con valori predefiniti, quindi puoi saltare quelli che non hai desidera impostare in modo esplicito.

Puoi anche utilizzare execute comando come scorciatoia, ma con molti parametri è probabilmente più facile attenersi a un blocco anonimo - è comunque lo stesso sotto il cofano. Gran parte della documentazione di SQL*Plus si applicava anche a SQL Developer.

La documentazione per sviluppatori SQL mostra come eseguire e eseguire il debug di una procedura .

Se questa è la tua prima incursione in PL/SQL, potrebbe valere la pena rivedere il documentazione . Non sono sicuro di dove stai andando con il codice che hai mostrato; mi sembra un po' confuso. È insolito creare oggetti come indici in PL/SQL poiché dovrebbero essere compilati una volta quando lo schema viene creato o aggiornato, quindi averlo come codice riutilizzabile sembra un po' inutile.