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

  • FullMag

    FullMag

    15 ŞUBAT 2007
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010