Reputation: 801
I need to set the client_info value to differentiate between different clients.
These are the scripts that I am running to test.
Step 1:SYS SCHEMA
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
Step 2:HR SCHEMA
EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO(UTL_INADDR.GET_HOST_NAME );
EXEC DBMS_APPLICATION_INFO.SET_MODULE( 'CHECK','select' );
select
a.FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME
from
HR.EMPLOYEES a
where
a.DEPARTMENT_ID = '40'
;
Step 3:SYS SCHEMA
select
*
from
(
select
a.SQL_ID
,a.SQL_FULLTEXT
,to_char( a.LAST_ACTIVE_TIME,'DD-MON-YYYY HH24:MI:SS' ) as LAST_ACTIVE_TIME
,a.SERVICE
,b.SCHEMANAME
,b.CLIENT_INFO
,a.MODULE
,a.ACTION
from
GV$SQL a
left outer join GV$SESSION b
on
(
b.SQL_ID = a.SQL_ID
)
where
a.EXECUTIONS != 0
)
c
where
c.MODULE like '%CHECK%'
order by
c.LAST_ACTIVE_TIME desc ;
The MODULE and ACTION columns are getting the values but the CLIENT_INFO is not showing anything.
Is there anything I am missing?
Update: I have also tried with no luck
EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO( SYS_CONTEXT('userenv','ip_address') );
EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO( '10.10.10.10' );
Upvotes: 3
Views: 8419
Reputation: 801
SET_CLIENT_INFO
is related to a Session, not to a single SQL Statement.
DO THIS
Step 1:SYS SCHEMA
ALTER SYSTEM FLUSH SHARED_POOL;
ALTER SYSTEM FLUSH BUFFER_CACHE;
Step 2:HR SCHEMA
EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO(UTL_INADDR.GET_HOST_NAME );
EXEC DBMS_APPLICATION_INFO.SET_MODULE( 'CHECK','select' );
Step 3:SYS SCHEMA
SELECT
a.SQL_ID
,a.CLIENT_INFO
,a.MODULE
,a.ACTION
,a.SCHEMANAME
,a.USERNAME
FROM
V$SESSION a
WHERE
a.MODULE = 'CHECK';
Upvotes: 3