如何使用'trinidad& amp;中的Oracle SQL Developer避免变量替换多巴哥”

时间:2010-02-25 12:42:59

标签: oracle oracle-sqldeveloper

当我尝试在Oracle SQL Developer 2.1中执行此语句时,弹出一个对话框“输入替换变量”,询问 TOBAGO 的替换值,

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

如果不诉诸chr(38)u'trinidad \0026 tobago',这两者都会模糊声明的目的,我该如何避免这种情况?

6 个答案:

答案 0 :(得分:172)

在查询之前调用此方法:

set define off;

或者,hacky:

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

来自Tuning SQL*Plus

  

SET DEFINE OFF禁用解析要替换的命令   替换变量及其值。

答案 1 :(得分:14)

在SQL * Plus中,将SET DEFINE ?放在脚本的顶部通常可以解决这个问题。也可能适用于Oracle SQL Developer。

答案 2 :(得分:0)

这可以按照您要求的不使用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';

答案 3 :(得分:0)

如果使用liquibase运行sql文件,不会报错。但是对于 sql 开发人员,在你的 sql sode

之前使用这个 set define off;

答案 4 :(得分:-2)

设置扫描关闭; 以上命令也有效。

答案 5 :(得分:-3)

我也遇到了一些问题。每当我尝试建立与任何数据库的连接时,都会启动。

对我有用的是删除您可能已配置的任何启动脚本!

即。 Tools>Preferences...>Database和 删除标记为文本框中的所有文件路径 "连接启动脚本的文件名"!