tutorial plus conectar comandos oracle sqlplus

plus - Cuándo o por qué usar un "SET DEFINE OFF" en la base de datos Oracle



sqlplus command line (2)

Aquí está el ejemplo:

SQL> set define off; SQL> select * from dual where dummy=''&var''; no rows selected SQL> set define on SQL> / Enter value for var: X old 1: select * from dual where dummy=''&var'' new 1: select * from dual where dummy=''X'' D - X

Con set define off , tomó una fila con el valor &var , solicitó al usuario que ingrese un valor y reemplazó &var con el valor ingresado (en este caso, X ).

Estoy viendo un script en Oracle y veo algo que no reconozco

REM INSERTING into database1."Users" SET DEFINE OFF; Insert into database1."Users" ("id","right") values (''1'',''R'');

Estoy buscando documentación sobre "set define off" y está literalmente escribiendo "deshabilitar el análisis de comandos para reemplazar la variable de sustitución con sus valores"

Realmente no entiendo lo que quieren decir.

¿Alguien puede ayudarme?


Por defecto, SQL Plus trata ''&'' como un carácter especial que comienza una cadena de sustitución. Esto puede causar problemas al ejecutar scripts que incluyen ''&'' por otros motivos:

SQL> insert into customers (customer_name) values (''Marks & Spencers Ltd''); Enter value for spencers: old 1: insert into customers (customer_name) values (''Marks & Spencers Ltd'') new 1: insert into customers (customer_name) values (''Marks Ltd'') 1 row created. SQL> select customer_name from customers; CUSTOMER_NAME ------------------------------ Marks Ltd

Si sabe que su script incluye (o puede incluir) datos que contienen caracteres ''&'', y no desea el comportamiento de sustitución como se indicó anteriormente, utilice set define off para desactivar el comportamiento mientras ejecuta el script:

SQL> set define off SQL> insert into customers (customer_name) values (''Marks & Spencers Ltd''); 1 row created. SQL> select customer_name from customers; CUSTOMER_NAME ------------------------------ Marks & Spencers Ltd

Es posible que desee agregar set define on al final del script para restaurar el comportamiento predeterminado.