Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 错误:ORA-28500:[Oracle][ODBC SQL Server驱动程序]字符串数据,右截断_Database_Sql Server 2005_Odbc_Oracle11gr2 - Fatal编程技术网

Database 错误:ORA-28500:[Oracle][ODBC 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列使整

我们正试图通过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列使整个查询失败,一切都会正常,我尝试在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数据库。