【发布时间】:2010-10-31 00:14:41
【问题描述】:
我在使用 Oracle 9i 作为其数据库的旧 ASP 应用程序中遇到了一个奇怪的问题。我们最近让 DBA 将 VARCHAR2 字段的大小从 VARCHAR2(2000) 增加到 VARCHAR2(4000)。问题在于,即使插入的字符串大于 2000 个字符,也会在字符串中的 2001 个字符位置插入一个 NULL 字节(ASCII:0)。例如,如果应用程序将一条包含 2500 个字符的字符串的新记录插入到表中,则 VARCHAR2 字段中将存储 2501 个字符,并在 2001 个字符位置插入 NULL 字节。 NULL 字节不是保存到数据库中的原始发布数据的一部分,这给我们带来了一些麻烦。你们有没有遇到过这样的事情?该应用程序正在使用 MSDAORA ODBC 驱动程序,我认为该驱动程序正在将终止 NULL 字符添加到其字符串缓冲区,可能内部限制为 2000 个字符。
有什么想法吗?
谢谢。
【问题讨论】:
-
感谢大家的回复。罪魁祸首是“Microsoft ODBC for Oracle”驱动程序。该应用程序未使用 MSDAORA。重新配置 ODBC DSN 以使用 Oracle 10g 驱动程序解决了该问题。
标签: oracle asp-classic