在谷歌搜索了很多并没有找到我要找的东西之后,我决定问这个问题。
我正在使用绑定变量,正如2005 年的这篇很棒的文章所展示的那样,Mark A. Williams 的标题为绑定的值,如下所示:
OracleParameter p_APP_NAME =
new OracleParameter("p_APP_NAME", OracleDbType.NVarchar2, ParameterDirection.Input);
p_APP_NAME.Size = 50;
p_APP_NAME.Value = log.Application.Name;
cmd.Parameters.Add(p_APP_NAME);
我成功地启用了ODP.NET
调试跟踪,但缺少的一个关键信息是日志SQL statement
没有显示绑定到绑定变量的值是什么。
它正在记录OracleCommand.CommandText
但没有OracleCommand.Parameters
值。它向我展示了这个:
TIME:2013/09/20-22:59:21:890 TID:20fc OpsSqlPrepare2(): SQL: UPDATE PS_LOG SET
APP_NAME = :p_APP_NAME,
WHERE LOG_ID = :p_LOG_ID
我真正想看到的是发送到 ORACLE 服务器的查询中使用的实际值,如下所示:
TIME:2013/09/20-22:59:21:890 TID:20fc OpsSqlPrepare2(): SQL: UPDATE PS_LOG SET
APP_NAME = 'App Name',
WHERE LOG_ID = 777
我是否缺少某些配置,或者在使用ODP.NET
跟踪功能时我想要的信息不可用?
如果这不是内置的,我想我将不得不实现自己的替换方法并SQL Statement
自己记录。