Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Quando ou por que usar um SET DEFINE OFF no Oracle Database


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.