sql >> Base de Datos >  >> RDS >> Oracle

Cuándo o por qué usar un SET DEFINE OFF en Oracle Database

De forma predeterminada, SQL Plus trata '&' como un carácter especial que comienza una cadena de sustitución. Esto puede causar problemas al ejecutar secuencias de comandos que incluyen '&' por otras razones:

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 secuencia de comandos 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 se 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.