参数替换C#后查看确切的sql

Rav*_*nXV 8 c# sql logging oraclecommand

有没有办法在执行后立即访问CommandText?我有以下代码:

cmd = new OracleCommand(sql.ToString(), conn);
cmd.Parameters.Add(new OracleParameter("@parm", parmValue));


OracleDataAdapter da = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
Run Code Online (Sandbox Code Playgroud)

我需要知道的是在数据库中执行的sql命令字符串已经包含在sql中的parmValue值.换句话说,我一定不能在查询中看到字符串"@parm",而是查看它的值.

我需要这个,以便我可以将这个sql推送到日志数据库中以供将来参考.

提前致谢.

Dav*_*vid 1

我不确定 Oracle,但在我个人使用的 RDBMS 中,这是不可能完成的。

当我需要获取参数并查看生成的 SQL 查询时,我总是通过循环遍历代码中的参数集合并提取名称/值对以将生成的查询或类似的内容记录到我们的错误日志记录中来完成此操作数据库:

StoredProc=InsertCallRecord:参数:CallId=1234;Custid=651;PersonCalling=Dave...

我只在错误日志记录中执行此操作,因为在每次调用时执行此操作都会降低性能,但它也可以在测试场景中工作。