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

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • wowchick16

    wowchick16

    17 Mart 2007