我有一个旧的应用程序/可执行文件,可将数据加载到我们进行反向工程的Oracle DB中。我们希望查看应用程序生成的所有sql,而无需单步执行源代码。源代码具有许多不同的版本,并且可能与可执行文件不匹配。
liuchangqi 回答:Oracle显示按应用程序针对DB运行的所有SQL查询
select v$sql.last_load_time,v$sql.sql_text
from v$sql
order by v$sql.last_load_time desc
首先,您需要DBA的帮助:
- 授予从表v $ sql中选择的权限。
- ALTER SYSTEM SET sql_trace = true SCOPE = MEMORY;完成时 更改系统设置sql_trace = false SCOPE = MEMORY;
- 从sys.v_ $ session中选择sid,序列号和计算机;找到您机器的sid和序列号并输入到下一个命令
- 执行sys.dbms_system.set_sql_trace_in_session(sid,serial#,true);
-
通过执行以下命令来刷新缓存:
alter system flush buffer_cache;
alter system flush shared_pool;