我正在编写一个脚本,其中多个后续过程需要一个过程的输出。所以,我需要绑定变量,而不是替代变量。但是,无论何时使用变量,它都被清除。这使得不可能多次使用变量的值。完全相同的脚本适用于SQL * Plus。我在下面制作了一个简短的脚本,说明了这个问题。SQL Developer清除脚本中的绑定变量
这是可以在SQL Developer中更改的设置吗?这是一个错误?在我的情况下,我正在使用SQL Developer版本4.1.5.21.78。
var x varchar2(1)
var y varchar2(1)
print x
print y
exec :x := 'Z';
exec :y := 'Z';
print x
print y
exec :x := :y;
-- Why did that last line clear y?
print x
print y
输出
X
------
Y
------
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
X
-
Z
Y
-
Z
PL/SQL procedure successfully completed.
Y
-
X
-
Z
我在4.2.0.17中看不到,最后两个打印命令都显示Z.(您输出的顺序与代码不匹配,但仍......)。尽管如此,我也发现4.1.5.21中的问题,所以它在该版本中看起来像是一个bug。升级似乎是一种解决方法? –
我认为这可能是此错误的另一个示例:https://stackoverflow.com/q/43401127/84206 – AaronLS