Informatica實現etl同步表數據信息時 報:
Severity Timestamp Node Thread Message Code Message ERROR 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 column Database driver error... Function Name : Execute SQL 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 Database driver error... Function Name : Execute Multiple SQL 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來說就不支持了,警以為戒