我正在学习PL/SQL,正在学习绑定变量。 我了解到我们使用绑定变量来传递运行时值。
但是在PL/SQL中,&和:(冒号)有什么区别?它们是相同的还是有区别?何时应该使用&和:?
我正在学习PL/SQL,正在学习绑定变量。 我了解到我们使用绑定变量来传递运行时值。
但是在PL/SQL中,&和:(冒号)有什么区别?它们是相同的还是有区别?何时应该使用&和:?
&
在PL/SQL中没有意义,它实际上是一个SQL Plus功能(为了兼容性已被复制到Toad、SQL Developer等)。在SQL Plus中,&
用于定义一个替换变量,在代码被发送到服务器进行处理之前,由SQL Plus替换为指定的替换文本。&name.
,即以&
开头,以.
结尾,但在大多数情况下,.
是可选的。因此,当您在SQL Plus中运行此代码时:select * from emp where ename = '&name.';
SQL Plus提示用户输入一个值name
,并在查询运行之前将其替换。因此,如果用户输入KING
,则实际运行的SQL为:
select * from emp where ename = 'KING';
select * from emp where ename IN ('&name*.');
- Captain Tylerselect * from emp where ename IN (&name.);
(注意:&name
周围没有引号,也没有星号)然后在提示输入name
时输入带引号的数据:'KING','SCOTT','WILSON'。这实际上被替换为:select * from emp where ename IN ('KING','SCOTT','WILSON');
- Tony Andrews