plsql连续执行结果不同
d4fan 2007-06-26 08:36:18 用pl/sql developer测一段pl/sql代码
1. 编译我的pl/sql代码
2. 运行测试程序,得到预期结果。而且我的pl/sql代码中的dbms_output.put_line的输出也会正确显示
3. 然后在不重新编译我的pl/sql代码的前提下,重新运行测试程序(非debug方式),返回结果就不同了,而且dbms_output.put_line的输出没有显示。无论多少遍都是一样
但是如果重新编译pl/sql代码或者以debug方式运行,返回值就总是一致的,而且dbms_output.put_line的输出正确显示
加了PRAGMA SERIALLY_REUSABLE之后,就不会出现这个现象了,但是我还是有一点不明白,包变量是session级别的,被缓存了可以理解,但是就算是被缓存了,为什么dbms_output的输出为什么没有了呢,而且好像子函数也没有执行(直接就返回了true)。
这是怎么回事啊