Per impostazione predefinita, SQL Plus considera "&" come un carattere speciale che inizia una stringa di sostituzione. Questo può causare problemi durante l'esecuzione di script che capita di includere '&' per altre ragioni:
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 si conosce lo script include (o potrebbe includere) dati contenenti '&' personaggi, e non si vuole la sostituzione comportamento come sopra, quindi utilizzare set define off
per spegnere 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
si potrebbe desiderare di aggiungere set define on
alla fine dello script per ripristinare il comportamento predefinito.
fonte
2015-12-17 11:48:42
disattiva le variabili di sostituzione. quindi non ti viene chiesto di inserire un valore quando vede la tua variabile di sostituzione. Credo che il valore predefinito sia &. –
Questa è un'impostazione per _client_ SQL, non il database stesso. E così è documentato nel manuale SQL * Plus: http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm#SQPUG073 –