Domyślnie SQL Plus traktuje „&” jako znak specjalny, który rozpoczyna łańcuch zastępczy. Może to powodować problemy podczas uruchamiania skryptów, które zawierają „&” z innych powodów:
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
Jeśli wiesz, że twój skrypt zawiera (lub może zawierać) dane zawierające znaki '&' i nie chcesz, aby zachowanie podstawiania było takie jak powyżej, użyj set define off
aby wyłączyć zachowanie podczas uruchamiania skryptu:
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
Możesz dodać set define on
na końcu skryptu, aby przywrócić domyślne zachowanie.