OJB / Oracle XE sql调试显示问题

时间:2009-11-24 16:38:07

标签: java sql oracle-xe ojb

我有一个Java应用程序,并使用OJB作为我的ORM技术。我在本地进行Oracle XE安装以进行开发。问题是当我需要调试问题时,我喜欢查看SQL输出。以下是我可以通过Oracle XE中的“Top SQL”界面查看的SQL示例:

 select a_bunch_of_fields
 from KREW_DOC_TYP_T A0
 WHERE ((UPPER(A0.DOC_TYP_NM) LIKE :1) AND A0.ACTV_IND = :2) AND A0.CUR_IND = :3 

问题是我希望看到真正的价值,而不是“:1”。我似乎无法找到如何配置它。我知道真正的价值观正在发挥作用,因为应用程序正在按预期响应,大部分时间(因此我正在处理的错误)。

谢谢,   杰

1 个答案:

答案 0 :(得分:0)

一种快速而又脏的方法是查看提供的数据库视图(v $ sql_bind_capture和v $ sqlarea)。在下面的SQL中,我刚刚添加了一个like子句来匹配上面的sql语句,然后你会得到一个每个绑定变量的行和它的值。要定位一个非常特定的SQL语句,您需要sql_id用于查询。

SELECT a.sql_text, b.NAME, b.POSITION, b.datatype_string, b.value_string
  FROM v$sql_bind_capture b, v$sqlarea b
 WHERE b.sql_id = a.sql_id
  and a.sql_text like '%UPPER(A0.DOC_TYP_NM) LIKE :1%'

输出(没有SQL,结果看起来像这样):

"NAME","POSITION","DATATYPE_STRING","VALUE_STRING"
":B1","2","NUMBER","1001"