ITPub博客

首页 > 数据库 > Oracle > [20240925]toad编写sql参数替换的问题.txt

[20240925]toad编写sql参数替换的问题.txt

原创 Oracle 作者:lfree 时间:2024-09-27 20:41:26 0 删除 编辑

[20240925]toad编写sql参数替换的问题.txt

--//写一个复杂sql语句在toad下调试,主要原因toad下可以很好的格式化sql语句,这样调试容易发现问题。
--//问题主要集中在参数替换上,通过例子说明。

--//toad 版本 12.7.0.121

--//在sqlplus下:
SCOTT@book01p> define 1=12
SCOTT@book01p> select &1 , &1+1 from dual ;

        12       12+1
---------- ----------
        12         13

--//没有任何问题。

--//但是在toad下:
--//第1次执行,带入12.
old: select &1 , &1+1 from dual
new: select 12 , 12+1 from dual

        12       12+1
---------- ----------
        12         13
已选择 1 行。
--//测试正确!!

--//第2次执行,带入13.
old: select &1 , &1+1 from dual
new: select 13 , 12+1 from dual

        13       12+1
---------- ----------
        13         13
已选择 1 行。
--//测试错误。你可以发现第2次执行第2个参数&1还是12.
--//实际上在执行时弹出变量赋值时仅仅给第1个赋值,第2个没有选中还是原来的旧值。
--//在赋值界面上出现&1(0),&1(1),如果没有选中&1(1)就会出现上面的错误,选中就不会出现上面的错误。
--//如果脚本出现&1多次,每一次都需要选中是一件很繁琐的操作。
--//有1个简单的修改方法就是使用2个&&,这样可以规避上面的情况,改写如下:

select &&1 , &&1+1 from dual ;

--//赋值界面上仅仅出现&&1,就不会出现前面的错误,也就是toad参数替换最好使用2个&代替1个&。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3034311/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970129