我试图显示(在控制台中打印)与ADF-BC相对应的SQL查询。我不知道如何使用Jdeveloper 11.1.1.1.0和Oracle 11g。我只是想在将它们发送到Oracle之前查看将要执行的SQL查询。问题是我正在使用现有的Web应用程序(用ADF-BC编写),响应时间太长。因此,我想使用SQL Developer测试查询并制定一些“解释计划”,以了解如何对其进行优化。
或者,如果有人知道如何从executeQueryForCollection(Object qc, Object[] params, int noUserParams)
获取SQL查询字符串(在调试模式下)
方法
答案 0 :(得分:2)
使用Java运行时选项运行应用程序 -Djbo.debugoutput =控制台 这将在日志窗口中打印信息。我会打印很多信息,所以你应该快速关闭它。 要在文件中获取相同的信息 -Djbo.debugoutput =文件 这会将信息打印到文件中,只将文件名写入日志。
答案 1 :(得分:2)
使用Oracle 12c 和JDeveloper 12.1.3,您有两种选择:
oracle.jbo
置于级别FINEST
oracle.jbo.server.ViewObjectImpl
executeQueryForCollection(Object qc, Object[] params, int noUserParams)
中实现this.getQuery()
的子类中检索SQL查询
答案 2 :(得分:1)
在独立WLS中启用诊断消息在12.2.1.2中测试
在以下示例中,将使用JDeveloper附带的WLS作为Windows机器中的独立版本。
转到WLS bin目录。在我们的例子中%JDEV_SYSTEM_DIR%\ DefaultDomain \ bin \
例如
C:\ JDeveloper中\ MYWORK \ system11.1.1.3.37.56.60 \默认域\ BIN \
(注意:检查相关帖子以从正在运行的WLS的日志中找出JDEV_SYSTEM_DIR。)
打开文件setDomainEnv.cmd在评论后的文件顶部输入以下行
set DIAGNOSTIC_OPTIONS=-Djbo.debugoutput=file -Djbo.logging.show.function=true
然后修改以下行
set JAVA_PROPERTIES=-Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME%
(在同一行。) 到
set JAVA_PROPERTIES=-Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME% %DIAGNOSTIC_OPTIONS%
http://adfhowto.blogspot.ca/2011/01/enable-diagnostic-messages-on-you.html