如何使用'trinidad&tobago'避免Oracle SQL Developer中的变量替换

Jan*_*cki 104 oracle oracle-sqldeveloper

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

update t set country = 'Trinidad and Tobago' where country = 'trinidad & tobago';
Run Code Online (Sandbox Code Playgroud)

如果不诉诸chr(38)或者u'trinidad \0026 tobago'两者都掩盖了声明的目的,我怎么能避免这种情况?

Nic*_*ver 182

在查询之前调用此方法:

set define off;
Run Code Online (Sandbox Code Playgroud)

或者,hacky:

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';
Run Code Online (Sandbox Code Playgroud)

来自Tuning SQL*Plus:

SET DEFINE OFF禁用解析命令以用其值替换替换变量.

  • 什么(其他)做`定义关闭;`做什么? (9认同)

die*_*ikh 14

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

  • 设定定义?确实抑制了SQL Developer 2.1中的变量替换行为.正如Nick SET DEFINE OFF所述也有效. (2认同)