Wednesday, May 21, 2014

Como ver el valor de una variable en una sentencia SQL ejecutándose en Oracle

Uno de los problemas generalizados en Oracle es el poder ver el valor de una variable incluida en una sentencia ejecutada.

¿a que me refiero con ésto?

En Oracle podemos usar una sentencia de éste tipo:

INSERT INTO emp VALUES
    (:empno, :ename, :job, :sal, :deptno)

donde los valores son incluidos por parámetro en variables, 
en éste caso es fácil de saber cuál valor es cuál cierto?

¿Que tal cuando las variables son incluidas ... así? 


INSERT INTO emp VALUES
    (:E1, :E2, :E3, :E4, :E5)


aunque no lo crea es un formato muy utilizado, 
¿cómo sabría usted cuál variable es cuál?

La manera difícil es generar un sql parecido a éste, por cada variable:


select sesion.sid,
       sesion.serial#,
       sesion.username,
       sesion.sql_id,
       sesion.sql_child_number,
       optimizer_mode,
       hash_value,
       address,
       sql_text
  from v$sqlarea sqlarea, v$session sesion
 where sesion.sql_hash_value = sqlarea.hash_value
   and sesion.sql_address    = sqlare

La manera fácil es con una herramienta de optimización como 
el DBOptimizer de Embarcadero:

Como ven aquí nos muestra todas las variables relacionadas al SQL 
con sólo un click


No comments:

Post a Comment

Exploring the Differences between Red-Teaming and Blue-Teaming in Cybersecurity: Why Red-Teaming is Sexier; but Blue-Teaming is More Crucial

When it comes to cybersecurity, there are two teams that often get confused: redteams and blueteams. Redteams are the hackers, the ones w...