如何从Oracle occi C++ api中记录原始SQL?

sav*_*nna 6 c++ sql oracle api logging

我们的一位客户抱怨我们的申请无效.他们的理由是我们的sql函数调用他们的Oracle数据库没有得到"预期"的结果.有时,它应该失败,但我们的应用程序从他们的数据库获得成功.这真是令人沮丧,因为它是他们的数据库,我们无法对其进行任何测试.

我们正在使用C++ Oracle OCCI API.反正我们可以从我们的结尾记录原始sql吗?这将非常有用,我们可以将脚本发送给他们,让他们在他们的系统中调试以找出问题.

提前致谢.

Dou*_*ter 0

理想情况下,您可以在数据库级别打开跟踪,这将生成一个跟踪文件,其中包含数据库执行的所有活动。

其他替代方案是更改应用程序以记录它将针对数据库执行的所有 SQL。

这篇文章还介绍了一些其他选项(他们通过尝试检测是否发生 SQL 注入来实现)来嗅探数据库活动:

http://www.symantec.com/connect/articles/detecting-sql-injection-oracle

尽管必须在数据库上进行设置,但跟踪将为您提供最真实的结果。 Oracle Fine Grained Auditing如果您使用的是 Oracle 9i 或更高版本,则需要考虑其他事项。