デフォルトでは、SQL Plusは「&」を置換文字列を開始する特殊文字として扱います。これにより、他の理由で「&」が含まれるスクリプトを実行するときに問題が発生する可能性があります。
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
スクリプトに「&」文字を含むデータが含まれている(または含まれている可能性がある)ことがわかっていて、上記のような置換動作が望ましくない場合は、set define off
を使用します。 スクリプトの実行中に動作をオフにするには:
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
set define on
を追加することをお勧めします スクリプトの最後で、デフォルトの動作を復元します。