it-swarm.com.de

So vermeiden Sie die Ersetzung von Variablen in Oracle SQL Developer durch 'Trinidad und Tobago'

Wenn ich versuche, diese Anweisung in Oracle SQL Developer 2.1 auszuführen, erscheint ein Dialogfenster "Substitutionsvariable eingeben", in dem Sie nach einem Ersetzungswert für TOBAGO gefragt werden.

update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';

Wie kann ich dies vermeiden, ohne auf chr(38) oder u'trinidad \0026 tobago' zurückzugreifen, die beide den Zweck der Anweisung verdecken.

98
Janek Bogucki

Rufen Sie das vor der Abfrage auf:

set define off;

Alternativ, gehackt:

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';

Von Tuning SQL * Plus :

SET DEFINE OFF deaktiviert das Analysieren von Befehlen zum Ersetzen von Substitutionsvariablen mit ihren Werten.

165
Nick Craver

In SQL * Plus lösen Sie normalerweise SET DEFINE ? oben im Skript. Könnte auch für Oracle SQL Developer funktionieren.

14
diederikh

dies funktioniert so, wie Sie ohne CHAR (38) gefragt haben: 

update t set country = 'Trinidad and Tobago' where country = 'trinidad & '|| 'tobago';

create table table99(col1 varchar(40));
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
SELECT * FROM table99;

update table99 set col1 = 'Trinidad and Tobago' where col1 = 'Trinidad &'||'  Tobago';
0
nikhil sugandh