你的位置:首页 > 数据库

[数据库]Informatica can bind a LONG value only for insert into a LONG column Oracle


 Informatica实现etl同步表数据信息时 报:

Severity  Timestamp  Node  Thread  Message Code  MessageERROR  2016/8/8 17:32:07  cnsz22vl0461_dev_oltp_01  WRITER_1_*_1  WRT_8229  Database errors occurred: ORA-01461: can bind a LONG value only for insert into a LONG columnDatabase driver error...Function Name : ExecuteSQL Stmt : INSERT INTO CBS_COS.TS_USER(USER_ID,USERNAME,PASSWORD,STATUS,USED_TM,UNUSED_TM,DEPT_ID,EMP_ID,TYPE_CODE,DATA_RIGHT_FLG,MODIFIED_TM,UPDATE_EMP,UPDATE_TM,CREATE_EMP,CREATE_TM,PWD_MODIFIED_TM,MODIFIED_EMP,VIP_WORKSHEET_TYPE,VIP_WORKSHEET_AREAS,VIP_OUT_WORK_SHEET_CUSTOMERS,HR_DUTY_NAME,USER_GROUP_NAME,VIP_WORK_SHEET_CUSTOMERS) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) Oracle Fatal ErrorDatabase driver error...Function Name : Execute MultipleSQL Stmt : INSERT INTO CBS_COS.TS_USER(USER_ID,USERNAME,PASSWORD,STATUS,USED_TM,UNUSED_TM,DEPT_ID,EMP_ID,TYPE_CODE,DATA_RIGHT_FLG,MODIFIED_TM,UPDATE_EMP,UPDATE_TM,CREATE_EMP,CREATE_TM,PWD_MODIFIED_TM,MODIFIED_EMP,VIP_WORKSHEET_TYPE,VIP_WORKSHEET_AREAS,VIP_OUT_WORK_SHEET_CUSTOMERS,HR_DUTY_NAME,USER_GROUP_NAME,VIP_WORK_SHEET_CUSTOMERS) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) Oracle Fatal Error

但是我可以确认,两个表的 字段完全相同,而且任何值也未超长,但是为什么呢 ?

经排查原因如下

In a single session you can't insert/update data to table where more than 1 column has the data type as varchar2(2000) or varchar2(4000). Try splitting the sessions

即对Informatica来说你超过两千了 ,那么久的换一种处理方式来处理,要么截取,要么怎么找都行,但是你一样的设置长度为2000-4000 这样的字段来说都会报这个错,对oracle来说其支持,但是对Informatica来说就不支持了,警以为戒