我有一个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“。我似乎找不到如何配置它。我知道真正的价值是有效的,因为应用程序在很大程度上是按预期响应的(因此我正在处理的bug)。
谢谢,杰伊
发布于 2009-11-25 00:53:06
一种又快又脏的方法是查看提供的数据库视图(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"https://stackoverflow.com/questions/1791276
复制相似问题