Por padrão, o SQL Plus trata '&' como um caractere especial que inicia uma string de substituição. Isso pode causar problemas ao executar scripts que incluem '&' por outros 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
Se você sabe que seu script inclui (ou pode incluir) dados contendo caracteres '&' e não deseja o comportamento de substituição como acima, use
set define off
para desligar o comportamento durante a execução do 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
Você pode querer adicionar
set define on
no final do script para restaurar o comportamento padrão.