1_ Buscando o valor o sql_id na V$SQL :
SELECT SQL_ID,SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%all_tab_columns%';
SQL_TEXT SQL_ID
---------------------------------------- -------------
select col.*, com.Comments from sys.all_ 032n4avhdnaz3
tab_columns col, sys.all_col_commen
WHERE o.owner LIKE :1 ESCAPE '/'
AND o.object_name LIKE 2: ESCAPE '/'
Atenção a identificação das binds , essa mesma posição vai ser recuperada logo a frente.
2_ Olhando a V$SQL_BIND_CAPTURE
SQL>
desc V$SQL_BIND_CAPTURE
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
ADDRESS RAW(8)
HASH_VALUE NUMBER
SQL_ID VARCHAR2(13)
CHILD_ADDRESS RAW(8)
CHILD_NUMBER NUMBER
NAME VARCHAR2(30)
POSITION NUMBER
DUP_POSITION NUMBER
DATATYPE NUMBER
DATATYPE_STRING VARCHAR2(15)
CHARACTER_SID NUMBER
PRECISION NUMBER
SCALE NUMBER
MAX_LENGTH NUMBER
WAS_CAPTURED VARCHAR2(3)
LAST_CAPTURED DATE
VALUE_STRING VARCHAR2(4000)
VALUE_ANYDATA ANYDATA
3_Buscando o valor da bind desejada :
SQL_ SELECT NAME,TO_CHAR(LAST_CAPTURED,'DD/MM/YYYY HH24:MI:SS'),VALUE_STRING FROM V$SQL_BIND_CAPTURE WHERE SQL_ID='0prhvnya3f97z' ;
NAME TO_CHAR(LAST_CAPTUR VALUE_STRING
------------------------------ ------------------- ------------------------------
:1 01/08/2011 16:24:39 REPORT_SERVER_AALTAMIRANO
:2 01/08/2011 16:24:39 ROLE
Pronto, de forma simples foi recuperado os valores passados no filtro da consulta SQL.
Nenhum comentário:
Postar um comentário