我想为连接到Oracle Database 12.1的Java 7应用程序实现一些集成/单元测试。用于测试连接数据库的数据库用户没有DBA权限(我无法授予他)。
我想确保每个单元测试执行的代码不会引入任何游标泄漏,所以我想在每个JUnit测试用例之前和之后执行类似下面的查询(使用@Before和@After注释)并比较值:
select a.value
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic# and s.sid=a.sid and s.sid= sys_context('USERENV','SID') and b.name = 'opened cursors current'
问题是,由于运行此查询的用户不是DBA,因此在尝试运行此查询时出现以下错误:
ORA-00942: table or view does not exist
我尝试查看USER_*表格以获取相关信息,但找不到任何内容。如果该用户没有DBA权限,Oracle是否有办法获取用户的开放游标?