Database 错误:ORA-28500:[Oracle][ODBC SQL Server驱动程序]字符串数据,右截断
我们正试图通过Oracle 11gR2网关连接到Sql Server 2005,当我们查询从Sql Server获取数据的视图时,会出现以下错误:Database 错误:ORA-28500:[Oracle][ODBC SQL Server驱动程序]字符串数据,右截断,database,sql-server-2005,odbc,oracle11gr2,Database,Sql Server 2005,Odbc,Oracle11gr2,我们正试图通过Oracle 11gR2网关连接到Sql Server 2005,当我们查询从Sql Server获取数据的视图时,会出现以下错误: Error: ORA-28500:[Oracle][ODBC SQL Server Driver]String data, right truncation 我已经注释掉了在Oracle运行的查询中的一些列,并且成功了。注释列的数据类型为VARHCAR(30),但还有其他字段也是VARCHAR(30) 是否有解决此错误的方法,如果我添加这3列使整
Error: ORA-28500:[Oracle][ODBC SQL Server Driver]String data, right truncation
我已经注释掉了在Oracle运行的查询中的一些列,并且成功了。注释列的数据类型为VARHCAR(30),但还有其他字段也是VARCHAR(30)
是否有解决此错误的方法,如果我添加这3列使整个查询失败,一切都会正常,我尝试在Sql Server 2005(数据源)上运行的视图中重命名这些字段,但没有结果
ODBC和SQL Server驱动程序都已安装,我们使用的是SQL Server驱动程序“dg4msql”。
Oracle字符集为AL32UTF8。最可能的原因是这些列包含Oracle将使用多个字节存储的字符。网关看到该列在SQL Server中定义为VARCHAR(30),因此它在Oracle中生成了一个VARCHAR2(30)列,但是(30)这里是30个字节而不是30个字符,因此,如果Oracle希望使用的字节总数超过30,则可以截短数据。(即,SQL Server中有30个字符,但其中一个字符在Oracle中需要2个字节,因此长度现在为31,因此太大) 作为一种解决方法,将SQL Server中的VARCHAR(30)列更改为NVARCHAR(30)-然后网关将知道它可能获得多字节字符,并将列定义转换为NVARCHAR并允许插入
有关如何转换列的详细信息,请参阅。true,但无法在SQL Server上移动石头,因为它是Navision ERP数据库。