Valeurs des variables bind sans 10046

Positionner un event 10046 level 12 n’est pas toujours évident pour récupérer les valeurs des variables binds en particulier s’il y a beaucoup de requêtes SQL. Une autre solution consiste à
1) Positionner le paramètre statistics_level à ALL au niveau du système ou de la session.
2) Repérer l’ordre dans la vue V$SQL et récupérer les paramètre SQL_ID ou HASH_VALUE
3) Utiliser la fonction DBMS_SQLTUNE.EXTRACT_BINDS comme dans l’exemple ci-dessous :

col bind format a50 word wrapped
select dbms_sqltune.extract_binds(bind_data) bind,
sql_text
from v$sql
where sql_id=’7uf1n8gz384jf’;

Le résultats de la fonction retourne quelque chose qui resemble à ce qui suit :
Voici un exemple de
SQL_BIND_SET(
SQL_BIND(NULL, 1, NULL, 1, ‘VARCHAR2(128)’, 46, NULL, NULL, 128, ’18/04/2007 12:27:23′, ‘0007GTBK’, ANYDATA()),
SQL_BIND(NULL, 2, NULL, 1, ‘VARCHAR2(128)’, 46, NULL, NULL, 128, ’18/04/2007 12:27:23′, ‘5’, ANYDATA()))

Le 5e champs du type SQL_BIND est le type de la variable BIND. Le 11e champ sa valeur.

GarK!

Pour information, la requête fonctionne bien avec SQL*Plus mais SQL*Developer 1.1 n’affiche pas les valeurs (une fonctionnalité pas encore disponible, un bug bientôt corrigé ou une incompétence de ma part ?).

2 réflexions sur “Valeurs des variables bind sans 10046”

Les commentaires sont fermés.