Oracle
 sql >> Base de données >  >> RDS >> Oracle

Quand ou pourquoi utiliser un SET DEFINE OFF dans Oracle Database

Par défaut, SQL Plus traite '&' comme un caractère spécial qui commence une chaîne de substitution. Cela peut causer des problèmes lors de l'exécution de scripts qui incluent '&' pour d'autres raisons :

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 vous savez que votre script inclut (ou peut inclure) des données contenant des caractères '&' et que vous ne souhaitez pas le comportement de substitution comme ci-dessus, utilisez alors set define off pour désactiver le comportement lors de l'exécution du 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

Vous voudrez peut-être ajouter set define on à la fin du script pour restaurer le comportement par défaut.