Oracle
 sql >> Database >  >> RDS >> Oracle

Quando o perché utilizzare un SET DEFINE OFF in Oracle Database

Per impostazione predefinita, SQL Plus considera '&' come un carattere speciale che inizia una stringa di sostituzione. Ciò può causare problemi durante l'esecuzione di script che includono "&" per altri motivi:

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 sai che il tuo script include (o può includere) dati contenenti '&' caratteri e non desideri il comportamento di sostituzione come sopra, usa set define off per disattivare il comportamento durante l'esecuzione dello 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

Potresti voler aggiungere set define on al termine dello script per ripristinare il comportamento di default.