Oracle:显示错误参数

时间:2012-09-21 17:14:25

标签: oracle logging parameters

当Oracle记录参数化SQL查询失败时,它会显示“?”代替参数,即替换参数之前的查询。例如,

"SELECT * FROM table where col like '?'" 
SQL state [99999]; error code [29902]; 
ORA-29902: error in executing ODCIIndexStart() routine ORA-20000: 
  Oracle Text error: DRG-50901: 
  text query parser syntax error on line 1, column 48

有没有办法更改日志记录,以便显示参数值?除非我能看到实际的解析问题,否则上面的信息绝对没用。

通常,有没有办法在Oracle中设置日志以显示参数化查询错误中的参数?

1 个答案:

答案 0 :(得分:2)

如果您运行的是Oracle 10g或更高版本且可以访问V $视图,则可以使用v $ sql_bind_capture查看值。

以下查询来自Burleson的网站:

SELECT 
   a.sql_text, 
   b.name, 
   b.position, 
   b.datatype_string, 
   b.value_string 
FROM
   v$sql_bind_capture b,
   v$sqlarea          a
WHERE
   b.sql_id = 'The SQL ID'
AND 
   b.sql_id = a.sql_id;