我正在使用Oracle Data Integrator开发一些ETL,有时候会通过TOAD测试我的部分代码。今天我遇到TOAD问题我有一个像
这样的行AND column_value like('DEV&PROD')
当我尝试运行包含上面过滤器的SQL时,TOAD要求PROD的值,它认为PROD是绑定或替换变量。 TOAD设置中是否有任何选项可以改变此功能。我正在使用带有列(:)的绑定变量,我的数据包括&所以我需要使用它。
此代码完美地在ODI中工作,我只需要TOAD的解决方案。提前谢谢。
答案 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
/