如何在servererror之后在触发器上记录绑定变量

时间:2014-10-13 08:24:49

标签: oracle plsql bind-variables

我需要跟踪绑定变量的值到返回Oracle错误的查询。

由于返回错误的查询未在v$sql_bind_capturev$sqlarea中绘制,因此我无法查看这些表格。

然后我在Servererror之后创建了一个触发器,并将查询记录在我创建的跟踪表中。不幸的是,没有跟踪绑定变量(我读过:p0:myVar等等)。

如果我无法访问会话,如何跟踪这些变量的值?

1 个答案:

答案 0 :(得分:0)

您可以跟踪会话并设置LEVEL以捕获绑定变量值。

SQL> ALTER SESSION SET EVENTS '10046 trace name context forever, level 4'; 

跟踪事件的不同LEVELs: -

0 – No trace. Like switching sql_trace off.

2 – The equivalent of regular sql_trace.

4 – The same as 2, but with the addition of bind variable values.

8 – The same as 2, but with the addition of wait events.

12 – The same as 2, but with both bind variable values and wait events.

查看How to generate trace file – SQL Trace and TKPROF in Oracle