Oracle上的数据库连接可以具有会话状态,该状态在连接的生命周期内持续存在,即以包变量的形式存在。
是否有办法在连接期间刷新/清除呼叫之间的所有状态而不会终止连接并重新建立新连接。
即。考虑首先在包init中设置的包变量,稍后在该包中的某个过程中进行修改:如何“重置”包以便从1个连接多次调用该过程总是导致重新启动包?
一般情况下:如何在该连接上的客户端执行语句之间“重置”任何会话状态?
答案 0 :(得分:8)
dbms_session.reset_package
是我能想到的最接近的。请参阅此tahiti link。
答案 1 :(得分:0)
除了dbms_session.reset_package
(在RenéNyffenegger的回答中提出),它会重置所有包,你必须编写自己的包程序来重置单个包的状态。该过程只是将所有包变量设置为NULL(或任何适当的)。