【发布时间】:2013-09-26 12:26:21
【问题描述】:
在谷歌上搜索了很多但没有找到我要找的东西后,我决定问这个问题。
我正在使用 绑定变量,这在 2005 中由 Mark A. Williams 撰写的标题为 The Values That Bind 的精彩文章中进行了演示,如下所示:
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 debug tracing,但缺少的一个关键信息是记录的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。
【问题讨论】:
标签: sql oracle odp.net trace bind-variables