interbase7数据导入到sqlserver2005

时间:2021-10-16 06:39:08
在sqlserver用 导入导出向导 odbc 导入 interbase7 数据

-------------------------------------------------------

- 正在设置源连接 (错误)
消息
错误 0xc0204016: DTS.Pipeline: “输出列“KMCODE”(12)”的长度无效。此长度必须介于 0 和 4000 之间。
 (SQL Server 导入和导出向导)
 
错误 0xc0047062: 源 - 查询 [1]: System.Runtime.InteropServices.COMException (0xC0204016): 异常来自 HRESULT:0xC0204016
   在 Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSOutputColumn90.SetDataTypeProperties(DataType eDataType, Int32 lLength, Int32 lPrecision, Int32 lScale, Int32 lCodePage)
   在 Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.ReinitializeMetaData()
   在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostReinitializeMetaData(IDTSManagedComponentWrapper90 wrapper) (SQL Server 导入和导出向导)
 
异常来自 HRESULT:0xC0204016 (Microsoft.SqlServer.DTSPipelineWrap)

interbase 该表信息:

/* Domain definitions */
CREATE DOMAIN D_BOOLEAN AS VARCHAR(1);
CREATE DOMAIN D_HBCODE AS VARCHAR(6);
CREATE DOMAIN D_HSTYPE AS VARCHAR(30);
CREATE DOMAIN D_KMCODE AS VARCHAR(30);
CREATE DOMAIN D_KMNAME AS VARCHAR(60) NOT NULL;
CREATE DOMAIN D_KMUNIT AS VARCHAR(8);
CREATE DOMAIN D_LOCK AS INTEGER
 Default 0;
CREATE DOMAIN D_PZNUM AS INTEGER;
CREATE DOMAIN D_STATESIGN AS VARCHAR(1);
CREATE DOMAIN D_ZJM AS VARCHAR(6);

/* Table: KM, Owner: SYSDBA */

CREATE TABLE KM 
(
  KMCODE D_KMCODE NOT NULL,
  KMNAME D_KMNAME,
  ZJM D_ZJM,
  HSTYPE D_HSTYPE,
  CURRCODE D_HBCODE,
  KMCURRENT D_BOOLEAN,
  SLJE D_BOOLEAN,
  KMUNIT D_KMUNIT,
  KMUSED D_LOCK,
  KMLEVEL D_STATESIGN,
  KMYEORIENT D_STATESIGN,
  KMTYPE D_STATESIGN,
  EXCHADJUST D_BOOLEAN,
  KMPROP D_PZNUM,
 PRIMARY KEY (KMCODE)
);
SET TERM ^ ;




看到论坛有人说列属性设置为varchar(max),ntext 都试过,未果.

拜谢大神.

12 个解决方案

#1


字段长度不够,或者超过字段界限.

不同数据库,类型,长度有很大区别,你如果要强行导入是不行的.


此长度必须介于 0 和 4000 之间。

应该是nvarchar或nchar类型吧?

如果超过两类型的长度,就只能用varchar(max),image,ntext等类型了.

#2


“输出列“KMCODE”(12)”的长度无效。此长度必须介于 0 和 4000 之间。

是不是长度设的太大,设小点试试

#3


源数据列长是varchar(30),我用varchar(max)  ,还是提示一样的错误...

#4


呃image 类型倒没试过,继续试下...


还有用odbc驱动会出这个问题  但是用oledb 却没有这个问题...

#5


引用 4 楼 idiotion 的回复:
呃image 类型倒没试过,继续试下...


还有用odbc驱动会出这个问题 但是用oledb 却没有这个问题...

odbc驱动。。。哎
这个驱动已经太老了,很多bug

#6


可惜我手里面的oledb interbase to sqlserver 的却是试用版的,只能用一个月   我这个是要定期做导入导出的  郁闷啊...

#7


odbc 驱动  在导入过程中,预览数据那里看到的数据是正常的

#8


尝试不选那个有问题的列,试试

#9


请问CSDN管理员及各位C友!为什么CSDN需要我没完没了的登录?

只要我点击了通知,私信,好友,然后我每回复一帖系统就要我登录一次,从6.1到今天,至少已经登录了数百次了.
(前些日子情况稍好些.)

实在忍无可忍,只好发帖了质问了.

环境: windows2003 + IE6

请问:是我系统(设置)的问题,还是CSDN开发人员水平太烂,居然烂到如此地步?

另外:发此帖登录三次,内容重写两遍(因为发贴后又要我登录,然后写的内容就无踪影了,只好重写).

在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的*!如有类似经历者,请指点我该如何操作,谢谢.

最后,我居然发不出帖!!!

请小F或roy_888帮我发出此帖,谢谢!

#10


int  那几列倒是可以导入 


但是 KMCODE 这些列才是重点,不能忽略的..

#11


自己再顶下   哪位大神帮帮忙   

或者谁有可用的  oledb 驱动   能发一份给我么?~   sdfre@163.com

#12



重新找了一个interbase odbc驱动,可以导了...谢谢几位热心帮忙.

#1


字段长度不够,或者超过字段界限.

不同数据库,类型,长度有很大区别,你如果要强行导入是不行的.


此长度必须介于 0 和 4000 之间。

应该是nvarchar或nchar类型吧?

如果超过两类型的长度,就只能用varchar(max),image,ntext等类型了.

#2


“输出列“KMCODE”(12)”的长度无效。此长度必须介于 0 和 4000 之间。

是不是长度设的太大,设小点试试

#3


源数据列长是varchar(30),我用varchar(max)  ,还是提示一样的错误...

#4


呃image 类型倒没试过,继续试下...


还有用odbc驱动会出这个问题  但是用oledb 却没有这个问题...

#5


引用 4 楼 idiotion 的回复:
呃image 类型倒没试过,继续试下...


还有用odbc驱动会出这个问题 但是用oledb 却没有这个问题...

odbc驱动。。。哎
这个驱动已经太老了,很多bug

#6


可惜我手里面的oledb interbase to sqlserver 的却是试用版的,只能用一个月   我这个是要定期做导入导出的  郁闷啊...

#7


odbc 驱动  在导入过程中,预览数据那里看到的数据是正常的

#8


尝试不选那个有问题的列,试试

#9


请问CSDN管理员及各位C友!为什么CSDN需要我没完没了的登录?

只要我点击了通知,私信,好友,然后我每回复一帖系统就要我登录一次,从6.1到今天,至少已经登录了数百次了.
(前些日子情况稍好些.)

实在忍无可忍,只好发帖了质问了.

环境: windows2003 + IE6

请问:是我系统(设置)的问题,还是CSDN开发人员水平太烂,居然烂到如此地步?

另外:发此帖登录三次,内容重写两遍(因为发贴后又要我登录,然后写的内容就无踪影了,只好重写).

在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的*!如有类似经历者,请指点我该如何操作,谢谢.

最后,我居然发不出帖!!!

请小F或roy_888帮我发出此帖,谢谢!

#10


int  那几列倒是可以导入 


但是 KMCODE 这些列才是重点,不能忽略的..

#11


自己再顶下   哪位大神帮帮忙   

或者谁有可用的  oledb 驱动   能发一份给我么?~   sdfre@163.com

#12



重新找了一个interbase odbc驱动,可以导了...谢谢几位热心帮忙.