SORU
25 ŞUBAT 2010, PERŞEMBE


ORA-30926: kaynak satır istikrarlı bir set tablolar alamıyor

Alıyorum

ORA-30926: kaynak tablolar içinde . satır istikrarlı bir dizi alamıyor

aşağıdaki sorgu:

  MERGE INTO table_1 a
      USING 
      (SELECT a.ROWID row_id, 'Y'
              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';

Veri bulunmaktadır table_1 koştu ve aynı zamanda da veri var hangi içinde sorgu (src) koştu.

Neden bu hata gelir ve nasıl çözülebilir?

CEVAP
25 ŞUBAT 2010, PERŞEMBE


Bu genellikle sorgu tümcesi KULLANARAK belirtilen çiftleri neden olur. Bu muhtemelen TABLE_A ana tablo ve aynı ROWID birkaç kez döndürülür anlamına gelir.

Hızlı sorgu (aslında, 'Y', sorgu koymak gerek yok sabit bir değerdir). eğer bir AYRI kullanarak sorunu çözmek olabilir

Sorgunuz böyle bir şey yapabileceğini doğru (tabloları bilmiyorum) olduğunu varsayarsak:

  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';

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • calicoJake

    calicoJake

    29 EKİM 2007
  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • sinumatic

    sinumatic

    19 Aralık 2006