2016-07-05 1 views
0

J'ai l'identifiant SQL d'une requête. Maintenant, je veux obtenir le nom de la machine et l'adresse IP de la machine à partir de laquelle cette requête a été exécutée.Comment obtenir le nom de la machine/l'adresse IP d'une requête SQL à partir de laquelle elle a été exécutée en utilisant sql id dans ORACLE

J'ai déjà vérifié l'identifiant sql dans V $ SESSION et V $ ACTIVE_SESSION_HISTORY mais n'a obtenu aucun résultat.

Je suis capable de trouver l'identifiant SQL dans v $ sql et LAST_LOAD_TIME est aujourd'hui (7 Juillet 2016).

select LAST_LOAD_TIME from v$sql where SQL_ID='0jf4618m2u7aw' order by LAST_LOAD_TIME desc; 
2016-07-04/17:26:02 
2016-07-04/17:26:02 


select * from V$SESSION where SQL_ID='0jf4618m2u7aw'; 
no rows selected 

select * from V$ACTIVE_SESSION_HISTORY where SQL_ID='0jf4618m2u7aw'; 
no rows selected 

Aidez-nous s'il vous plaît. Merci d'avance.

Répondre

0

Vous avez deux options ...

Si elle est une session/processus actif, vous pouvez utiliser v $ session et v $ process:

SELECT DISTINCT 
     MACHINE, 
     UTL_INADDR.GET_HOST_ADDRESS(MACHINE) AS IP_ADDR 
FROM V$SESSION S, 
     V$PROCESS P 
WHERE S.PADDR = P.ADDR 
AND  S.SQL_ID = '0jf4618m2u7aw'; 

Si vous voulez une vue historique , le DBA_HIST_ACTIVE_SESS_HISTORY pourrait être votre ami:

SELECT DISTINCT 
     MACHINE, 
     UTL_INADDR.GET_HOST_ADDRESS(MACHINE) AS IP_ADDR 
FROM DBA_HIST_ACTIVE_SESS_HISTORY DHASH 
WHERE DHASH.SQL_ID = '0jf4618m2u7aw' 
AND  DHASH.SQL_EXEC_START > TRUNC(SYSDATE); 
+0

Merci pour la réponse. J'utilise la deuxième requête mais obtenir l'erreur "Rapport d'erreur - Erreur SQL: ORA-00904:" MACHINE ": identificateur non valide 00904. 00000 -"% s: identificateur invalide " * Cause: * Action:" – Tajinder

+0

La colonne est définitivement disponible en 11gr2. Ce n'est pas disponible en 10g. Votre question est étiquetée 11g. Je me demande si vous utilisez 10g ou si vous utilisez 11gr1 et il n'était pas disponible jusqu'à 11gr2. Pouvez-vous faire, 'sélectionner la version de v $ instance' –

+0

oui, vous avez raison. Je cours la requête dans 11gr1. Pouvez-vous s'il vous plaît aider comment je peux le faire dans 11gr1? – Tajinder