Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-30926:không thể có được một tập hợp các hàng ổn định trong các bảng nguồn

Điều này thường do các bản sao trong truy vấn được chỉ định trong mệnh đề USING. Điều này có thể có nghĩa là TABLE_A là bảng mẹ và ROWID giống nhau được trả về nhiều lần.

Bạn có thể nhanh chóng giải quyết vấn đề bằng cách sử dụng DISTINCT trong truy vấn của mình (trên thực tế, nếu 'Y' là một giá trị không đổi, bạn thậm chí không cần đặt nó vào truy vấn).

Giả sử truy vấn của bạn là đúng (không biết các bảng của bạn), bạn có thể làm như sau:

  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. Cập nhật các hàng trong một bảng với dữ liệu từ một bảng khác dựa trên một cột trong mỗi bảng bằng nhau

  2. Dữ liệu truy vấn từ XML

  3. Chỉ mục phân vùng Oracle

  4. Hàm COSH () trong Oracle

  5. SQL Developer 4.1.3 đã được phát hành