日期:2014-05-16  浏览次数:20371 次

偶然接触oracle中的变量

??? 偶然写了个update语句

??

update dm_t t set t.url = (select '/webyy/jcwh.do?method=init&id='||a.id from dm_t a where a.id = t.id)
where t.lx = '001'

?

?? 执行update的时候,oracle弹出窗口提示输入id的变量值。

?? 这个是因为oracle的变量声明可能是&加上变量名,oracle把字符串里的&id解析成了一个名为id的变量,但这里我只是想作为一个普通的字符串使用,因此将sql稍作修改,如下:

update dm_t t set t.url = (select '/webyy/jcwh.do?method=init&'||'id='||a.id from dm_t a where a.id = t.id)
where t.lx = '001'

?

这样分开写后,执行成功。

?

?至于oracle的变量声明此处只是一个猜测,未查阅资料作进一步验证,待有时间再学习相关内容。