TOAD认为& String是绑定变量

时间:2013-02-25 12:04:38

标签: sql oracle plsql toad bind-variables

我正在使用Oracle Data Integrator开发一些ETL,有时候会通过TOAD测试我的部分代码。今天我遇到TOAD问题我有一个像

这样的行
AND column_value like('DEV&PROD')

当我尝试运行包含上面过滤器的SQL时,TOAD要求PROD的值,它认为PROD是绑定或替换变量。 TOAD设置中是否有任何选项可以改变此功能。我正在使用带有列(:)的绑定变量,我的数据包括&所以我需要使用它。

此代码完美地在ODI中工作,我只需要TOAD的解决方案。提前谢谢。

2 个答案:

答案 0 :(得分:4)

1)使用set define off;启动脚本(并使用F5键运行整个脚本)

2)使用'DEV&'||'PROD'代替'DEV&PROD'

3)为变量设置另一个前缀符号

set define ~;
select 'drag&drop', ~column_name from ~table_name;

(系统会提示您输入column_name和table_name,但不会提示输入'drop')

答案 1 :(得分:0)

此外 - 可以在任何工具或SQL提示符下使用:

SELECT ('DEV'||'&'||'PROD') val FROM dual
/

-- Q-quote operator introduced in Oracle 10g --
SELECT 'DEV' || q'[&]'||'PROD' AS val FROM dual
/

使用Egor或我的示例 - 复制/粘贴,输入1表示:bind_var:

SELECT 'DEV&'||'PROD' val FROM dual
 WHERE :bind_var = 1
/