目前我找到select * from v$sqlarea order by first_load_time desc,可是并非想要的。
1.中有执行成功的,可问题是我的老执行失败.
2.带参数.我只看见:p1,:p2,:P3....可是就是没有:p1=?
3.主要应为用的是一个封装类,所以没法在前台取sql,所以想从后台取?
十万为急..
1.中有执行成功的,可问题是我的老执行失败.
2.带参数.我只看见:p1,:p2,:P3....可是就是没有:p1=?
3.主要应为用的是一个封装类,所以没法在前台取sql,所以想从后台取?
十万为急..
具体看oracle管理员指南
修改数据库INIT.ORA文件中的audit_trail = true(注意把它前面的注释符#去掉)
重新启动数据库
DOS下执行
SVRMGRL
CONNECT INTERNAL/ORACLE
SHUTDOWN IMMEDIATE
STARTUP
然后用DBA用户登陆SQL*PLUS
CONNECT SYSTEM/MANAGER
创建一个审计:
SQL> audit create table by access whenever successful;审计已成功。
SQL> select sessionid SID,userid USID,action# ACT,obj$name OBNAME,TIMESTAMP# TIME FROM SYS.AUD$; SID USID ACT OBNAME TIME
----- ------ ---- ------- ------
202 SYSTEM 1 A 2002-08-24 00:59:01说明审计已经启动。====================================
自己写的,如有不当之处请各位指正。
看看这个:
select A.SID,A.SERIAL#,A.MACHINE,A.PROGRAM,GET_SQL(A.SQL_ADDRESS,A.SQL_HASH_VALUE)
from v$session a
where a.username is not null
and a.status='ACTIVE' 3。function get_sql: create or replace function GET_SQL(V_SQLADDRESS in RAW, V_SQLHASHVALUE in NUMBER) return varchar2 is
Result varchar2(2000);
CURSOR C1 IS
SELECT A.SQL_TEXT FROM V$SQLAREA A
WHERE A.ADDRESS=V_SQLADDRESS
AND A.HASH_VALUE=V_SQLHASHVALUE;
begin
FOR REC IN C1 LOOP
RESULT:=RESULT||REC.SQL_TEXT;
END LOOP;
return(Result);
end GET_SQL;