清除Oracle会话状态

obe*_*tet 4 oracle plsql

Oracle上的数据库连接可以具有会话状态,该状态在连接的生命周期中持续存在,即以包变量的形式存在.

有没有办法在连接期间刷新/清除呼叫之间的所有状态而不会终止连接并重新建立新连接.

即,首先在包init中设置一个包变量,然后在该包中的某个过程中进行修改:如何"重置"包以便从1个连接多次调用该过程总是导致重新启动包?

一般来说:如何在该连接上的客户端执行语句之间"重置"任何会话状态?

Ren*_*ger 8

dbms_session.reset_package是我能想到的最接近的.看到这个大溪地链接.

  • 啊,`DBMS_SESSION.RESET_PACKAGE()`与`DBMS_SESSION.MODIFY_PACKAGE_STATE(DBMS_SESSION.FREE_ALL_RESOURCES)`相同,但也有`DBMS_SESSION.MODIFY_PACKAGE_STATE(DBMS_SESSION.REINITIALIZE)`它不释放资源(性能命中),但是重新启动数据.大. (2认同)