「&」がOracleはAA代替物を使用する値を要求する「&」そう、置換変数のために使用される前に、代わりにあなたが&を配置することができます;例えば:
SQL> INSERT INTO TABLE_GROUPRISK
2 ("GROUP", RISKLEVEL) VALUES ('APIs & Intermediates','Low');
Enter value for intermediates: XXX
old 2: ("GROUP", RISKLEVEL) VALUES ('APIs & Intermediates','Low')
new 2: ("GROUP", RISKLEVEL) VALUES ('APIs XXX','Low')
1 row created.
あなたは、単にそれを免れることはできない。
SQL> INSERT INTO TABLE_GROUPRISK
2 ("GROUP", RISKLEVEL) VALUES ('APIs \& Intermediates','Low');
Enter value for intermediates: YYY
old 2: ("GROUP", RISKLEVEL) VALUES ('APIs \& Intermediates','Low')
new 2: ("GROUP", RISKLEVEL) VALUES ('APIs \YYY','Low')
1 row created.
SQL> INSERT INTO TABLE_GROUPRISK
2 ("GROUP", RISKLEVEL) VALUES (q'[APIs & Intermediates]','Low');
Enter value for intermediates: ZZZ
old 2: ("GROUP", RISKLEVEL) VALUES (q'[APIs & Intermediates]','Low')
new 2: ("GROUP", RISKLEVEL) VALUES (q'[APIs ZZZ]','Low')
1 row created.
あなたが代入を避けるために決めることができます。
SQL> set define off
SQL> INSERT INTO TABLE_GROUPRISK
2 ("GROUP", RISKLEVEL) VALUES ('APIs & Intermediates','Low');
1 row created.
SQL> select "GROUP" from table_grouprisk;
GROUP
--------------------------------------------------------------------------------
APIs XXX
APIs \YYY
APIs ZZZ
APIs & Intermediates
&エスケープするか '前OFF' DEFINE SET使用する必要がありますクエリを実行しています。 Oracleは&を使用して、実行時にユーザ入力を定義/許可します – xQbert
ここでそれについての長い議論があります:https://community.oracle.com/thread/468604?tstart=0 – xQbert
@xQbert:正確には:Oracle **ツール* *ランタイム入力には '&'を使います。 Oracleデータベースではありません。別のツールを使用してSQL * PlusまたはSQL Developerを使用する場合、これは発生しません。 –