今天在informatica上做一些操作,发现执行工作流报失败,我这个工作流是包括四个会话也就是四个映射(task),最后查看每一个会话,发现还是失败,我仔细查看了一下会话日志,发现报一个ORA-026002,就奇了怪了。最后发现是我的ORACLE数据库表的主键的索引导致的,我的ORACLE表都包含主键,所以自带一个隐含的唯一索引,
Informatica出现ora-26002错误
错误信息:ORA-26002
解决方法:
1.drop index
这种情况是楼主遇到的,具体的解决方法:
一、无命名 create table accounts ( accounts_number number primary key, accounts_balance number ); 二、有命名 create table accounts ( accounts_number number primary key, accounts_balance number, constraint yy primary key(accounts_number) );2、删除表中已有的主键约束 一、无命名 SELECT * FROM USER_CONS_COLUMNS WHERE TALBE_NAME='accounts'; 找出主键名 ALTER TABLE ACCOUNTS DROP CONSTRAINT SYS_C003063; 二、有命名 ALTER TABLE ACCOUNTS DROP CONTRAINT yy;
2.disable parallel loading
3.skip INDEX_MAINTAIN(不理解,没遇到过,还是疑问)
对于2解释如下:
因为Bulk方式只能用来做Insert操作。而大家知道我们如果需要Update操作,在Session的Treat source rows as的设置上需要设置成Data Driven,当我们同时选择了两种设置,会有什么结果呢。如果你同时设置了Data Driven和Bulk模式 PowerCenter Sever将自动切换采用Normal 方式进行Load,所以将bulk模式改为normal 便可以解决问题。