Oracle 10g是否会自动转义记录集中的双引号?

时间:2022-09-15 15:35:12

I am encountering an interesting issue with an application that was migrated from Oracle 9i to 10g.
Previously, we had a problem when a field contained double quotes since Oracle recordsets encapsulated fields in double quotes.

我遇到了一个从Oracle 9i迁移到10g的应用程序的一个有趣问题。以前,当字段包含双引号时,我们遇到了问题,因为Oracle记录集用双引号封装了字段。

Example: "field1"||"field2"||"field "Y" 3"||"field4"

示例:“field1”||“field2”||“field”Y“3”||“field4”

Since the move to 10g, I believe that the Oracle client-side driver is parsing the double quotes and replacing them with "

自从迁移到10g以来,我认为Oracle客户端驱动程序正在解析双引号并将其替换为“

Unfortunately I don't have an old 9i environment to test my theory.

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

Have you seen similar behavior or can someone validate if my theory is true?

你有没有看到类似的行为,或者有人可以验证我的理论是否属实?

1 个解决方案

#1


It's an estrange behavior. Can you check your NLS_xx environment variables? Some NLS_xx variables can translate chars, for instance NLS_LANG can translate acutes from a latin charset on client to a us2ascii charset on server.

这是一种疏远的行为。你能检查一下你的NLS_xx环境变量吗?一些NLS_xx变量可以转换字符,例如NLS_LANG可以将急性从客户端上的拉丁字符集转换为服务器上的us2ascii字符集。

To be sure about what is going, try to trace Net connections. You'll see everything moving from a side to other. Be careful...

为了确定将要发生的事情,请尝试跟踪网络连接。你会看到一切从一边移动到另一边。小心...

#1


It's an estrange behavior. Can you check your NLS_xx environment variables? Some NLS_xx variables can translate chars, for instance NLS_LANG can translate acutes from a latin charset on client to a us2ascii charset on server.

这是一种疏远的行为。你能检查一下你的NLS_xx环境变量吗?一些NLS_xx变量可以转换字符,例如NLS_LANG可以将急性从客户端上的拉丁字符集转换为服务器上的us2ascii字符集。

To be sure about what is going, try to trace Net connections. You'll see everything moving from a side to other. Be careful...

为了确定将要发生的事情,请尝试跟踪网络连接。你会看到一切从一边移动到另一边。小心...