How to avoid variable substitution in Oracle SQL Developer

OracleOracle Sqldeveloper

Oracle Problem Overview


When I try to execute this statement in Oracle SQL Developer 2.1 a dialog box "Enter Substitution Variable" pops up asking for a replacement value for TOBAGO,

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

How can I avoid this without resorting to chr(38) or u'trinidad \0026 tobago' which both obscure the purpose of the statement?

Oracle Solutions


Solution 1 - Oracle

Call this before the query:

set define off;

Alternatively, hacky:

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

From Tuning SQL*Plus:

> SET DEFINE OFF disables the parsing of commands to replace > substitution variables with their values.

Solution 2 - Oracle

In SQL*Plus putting SET DEFINE ? at the top of the script will normally solve this. Might work for Oracle SQL Developer as well.

Solution 3 - Oracle

this will work as you asked without CHAR(38):

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';

Solution 4 - Oracle

If you use liquibase to run sql file, it will not give error. But for sql developer use this set define off; before ur sql sode

Solution 5 - Oracle

set scan off; Above command also works.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJanek BoguckiView Question on Stackoverflow
Solution 1 - OracleNick CraverView Answer on Stackoverflow
Solution 2 - OraclediederikhView Answer on Stackoverflow
Solution 3 - Oraclenikhil sugandhView Answer on Stackoverflow
Solution 4 - OracleChamithView Answer on Stackoverflow
Solution 5 - OracleDinesh GarudView Answer on Stackoverflow