Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-30926:не може да се получи стабилен набор от редове в изходните таблици

Това обикновено се причинява от дубликати в заявката, посочена в клаузата USING. Това вероятно означава, че TABLE_A е родителска таблица и същият ROWID се връща няколко пъти.

Бихте могли бързо да разрешите проблема, като използвате DISTINCT в заявката си (всъщност, ако 'Y' е постоянна стойност, дори не е необходимо да го поставяте в заявката).

Ако приемем, че вашата заявка е правилна (не знам вашите таблици), можете да направите нещо подобно:

  MERGE INTO table_1 a
      USING 
      (SELECT distinct ta.ROWID row_id
              FROM table_1 a ,table_2 b ,table_3 c
              WHERE a.mbr = c.mbr
              AND b.head = c.head
              AND b.type_of_action <> '6') src
              ON ( a.ROWID = src.row_id )
  WHEN MATCHED THEN UPDATE SET in_correct = 'Y';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на манипулатор за регистриране за свързване с Oracle?

  2. Как да създам таблица на Oracle с вложени таблици от типове обекти?

  3. Въведение в методите за събиране на PL/SQL в базата данни на Oracle

  4. Как да импортирам XML файл в Oracle SQL Developer?

  5. Функцията Concat не работи - невалиден брой аргументи