<Oracle> SQL*PLUSから"&"をINSERTする方法

はい。やってみます。

環境:Oracle Database 11g

今日作業をやっていて、マスタにデータを入れないといけなかったんですが、文字列に&が入っていてINSERTができませんでした。ちょうど下記のような状態です。

SQL> create table test (c1 varchar(100));

表が作成されました。

SQL> insert into test values ('Sid&Nancy');
nancyに値を入力してください: やだやだ
旧   1: insert into test values ('Sid&Nancy')
新   1: insert into test values ('Sidやだやだ')

1行が作成されました。

SQL>

SQL*Plusで、"&"が置換変数として認識されて、入力を待ってしまうのが原因です。

文字列として"&"を使いたい場合は、SQLを実行する前に

SQL> SET DEFINE OFF

と打てば"&"は文字列になります。

SQL> SET DEFINE OFF
SQL> insert into test values ('Sid&Nancy');

1行が作成されました。

SQL>

ちなみに戻すには、

SQL> SET DEFINE ON

ですので、あしからず。

くわばらくわばら。