• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 475
  • Last Modified:

ORA-30926: UNABLE TO GET A STABLE SET OF ROWS IN THE SOURCE TABLES

hi am having this error when meging two tables
am in 11gR2
error is ORA-30926: UNABLE TO GET A STABLE SET OF ROWS IN THE SOURCE TABLES

create table CAL_OBJ
(
  obj_name    VARCHAR2(100) not null,
  obj_type    VARCHAR2(50),
  obj_title   VARCHAR2(50),
  description VARCHAR2(500),
  sub_system  VARCHAR2(100),
  status      VARCHAR2(20)
);


create table OBJTEST
(
  obj_name    VARCHAR2(100),
  obj_type    VARCHAR2(50),
  obj_title   VARCHAR2(50),
  description VARCHAR2(500),
  sub_system  VARCHAR2(100),
  status      VARCHAR2(20)
);

merge into cal_obj e1
      using objtest e2
      on (e1.obj_name = e2.obj_name)
when matched then update set e1.description    = e2.description,
                             e1.sub_system     = e2.sub_system
        when not matched then insert
         values (e2.obj_name, e2.obj_type, null, e2.description,e2.sub_system,null);

Open in new window

0
chalie001
Asked:
chalie001
1 Solution
 
chaauCommented:
Your on clause  on (e1.obj_name = e2.obj_name) does not provide the uniqueness. There are records in either tables with the duplicate obj_name. You need to fix your data by removing the duplicates or by using a stricter condition in the ON clause. BTW, I can see that the tables are without any primary keys or indexes. It does not look right. You need to start thinking about re-designing it.
0
 
chalie001Author Commented:
correct answer
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now