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.