Oracle SQL trace with bind variables

gabor picture gabor · Jul 5, 2010 · Viewed 8.1k times · Source

How to aquire the full SQL statement with bind variables substituted from a trace file?

When setting

ALTER SESSION SET EVENTS '10046 trace name context forever, level 4';
ALTER SESSION SET sql_trace = true;

the resulting trace file contains the SQL query with bind variables and the resolution of the bind variables in a separate "BINDS" section. This is fine if there are a couple of bind variables. It's not very useful when I have 100+ bind variables.

Tkprof processes the trace file but does not support bind variables.

Is it possible to get the full SQL statements with the bind variables substituted so I can easily copy-paste and re-execute it? Is there maybe a free tool that will process my trace file and output the full SQL statements?

I'd also appreciate a solution without SQL tracing using v$sql and friends instead.

Answer

jsampath picture jsampath · Jul 6, 2010

You need to use Oracle trace analyzer instead of tkprof to extract actual values of bind variables. http://www.rampant-books.com/art_moore_oracle_trace_analyzer_trcanlzr_sql.htm

trace analyzer is going to replace eventually tkprof in future.