Usualmente se utiliza el atributo "&1" que indica el valor que solicita el script una vez que se ha invocado. Esto conlleva a que se debe ingresar repetidamente el mismo valor todas las veces que "&1" es invocado dentro del script. Para evitar estas repeticiones innecesarias, se vierte el valor de "&1" en una variable la cual se invoca tantas veces sea necesario dentro del script.
Ejemplo:
$ cat delete_from_id.sql
define wk_id=&1;
prompt el valor ingresado es = &wk_id
prompt delete from tabla1...
delete from tabla1 cr where cr.ID_ARCHIVO=&wk_id;
--prompt delete from tabla2...
delete from tabla2 cci where cci.ID_ARCHIVO=&wk_id;
De esta forma en el script se pregunta sólo una vez por "&1" pero al quedar almacenada en la variable, se reutiliza el valor tantas veces sea necesario.
SQL> @delete_from_id.sql
Enter value for 1: 3476
el valor ingresado es = 3476
delete from tabla1...
old 1: delete from tabla1 cr where cr.ID=&wk_id
new 1: delete from tabla1 cr where cr.ID=3476
1 rows deleted.
old 1: delete from tabla2 cr where cr.ID=&wk_id
new 1: delete from tabla2 cr where cr.ID=3476
1 rows deleted.
No hay comentarios:
Publicar un comentario