2009-07-14 58 views
0

我遇到了一个有趣的问题,即从Oracle 9i迁移到10g的应用程序。
以前,当一个字段包含双引号时,由于Oracle记录集将字段封装在双引号中,所以我们遇到了问题。Oracle 10g会自动转义记录集中的双引号吗?

示例: “field1的” || “FIELD2” || “字段 ”Y“ 3” || “字段4”

由于移动到10G,相信Oracle客户端侧驱动器被解析双引号,并用"

替换它们不幸的是,我没有旧的9i环境来测试我的理论。

你见过类似的行为吗,或者有人可以验证我的理论是否属实?

+0

Oracle使用双引号分隔查询中标识符的名称,例如,从“EMP”中选择“EMPNO”。该表达式似乎不是有效SQL的一部分。为了清晰起见,需要额外的空间:“field1”|| “field2”|| “字段”Y“3”|| “field4” - 缺少某些东西。 – 2009-07-15 03:12:56

+0

我发布的是将记录集返回给VB的查询结果。 我想确定驱动程序是否正在转义双引号。我找不到任何我的应用程序代码执行此操作的任何证据。 – bitstream 2009-07-15 12:44:33

回答

0

这是一种陌生的行为。你能检查你的NLS_xx environment variables吗?一些NLS_xx变量可以转换字符,例如NLS_LANG可以将来自客户端的拉丁字符集的锐化转换为服务器上的us2ascii字符集。

要确定发生了什么,请尝试trace Net connections。你会看到一切从一边移动到另一边。请小心......