‚&‘ für Substitutionsvariablen verwendet wird, so dass, wenn Sie schreiben ‚&‘ Oracle fordert ein Wert aa Ersatz zu verwenden, ; zum Beispiel:
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.
Sie können es nicht einfach entkommen:
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.
Sie Substitution vermeiden entscheiden können:
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
& entkam werden muss oder verwenden Sie 'SET DEFINE OFF' vor Abfrage ausführen Oracle verwendet und definiert/erlaubt eine Benutzereingabe zur Laufzeit – xQbert
Lange Diskussion über es hier: https://community.oracle.com/thread/468604?tstart=0 – xQbert
@xQbert: um genau zu sein: die Oracle ** Tools * * Verwenden Sie den '&' für die Laufzeiteingabe. Nicht die Oracle-Datenbank. Wenn Sie ein anderes Tool als SQL * Plus oder SQL Developer verwenden, geschieht dies nicht. –