Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wann oder warum ein SET DEFINE OFF in der Oracle-Datenbank verwendet werden sollte

Standardmäßig behandelt SQL Plus '&' als Sonderzeichen, das eine Substitutionszeichenfolge beginnt. Dies kann aus anderen Gründen Probleme beim Ausführen von Skripten verursachen, die zufällig '&' enthalten:

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

Wenn Sie wissen, dass Ihr Skript Daten enthält (oder enthalten kann), die '&'-Zeichen enthalten, und Sie das Ersetzungsverhalten wie oben nicht wünschen, verwenden Sie set define off um das Verhalten während der Ausführung des Skripts auszuschalten:

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

Vielleicht möchten Sie set define on hinzufügen am Ende des Skripts, um das Standardverhalten wiederherzustellen.