informatica 遇到ORA-26002

来源:互联网 发布:剑三炮太捏脸数据 编辑:程序博客网 时间:2024/06/10 08:33

今天在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 便可以解决问题。