DBAtlas · Veritabanı operasyon atlası

ORA-30926: unable to get a stable set of rows in the source tables

Oracle

Ne demek?

Bir MERGE (veya güncellenebilir join) ifadesinde, kaynak (source) tarafı hedefteki (target) aynı satır için birden fazla eşleşen satır üretti. Oracle hangi kaynak değeriyle güncelleyeceğine karar veremediği için işlemi durdurdu.

Neden olur?

MERGE ... USING kaynağının, ON koşulu için mükerrer (duplicate) eşleşmeler içermesi; kaynak sorgusunun hedef anahtarına göre benzersiz olmaması; birden çok kaynak satırının aynı hedef satıra denk gelmesi.

Nasıl çözülür?

Kaynak sorgusunu hedef anahtarına göre benzersiz hale getirin. Mükerrer eşleşmeleri bulun: SELECT anahtar, COUNT(*) FROM (kaynak_sorgu) GROUP BY anahtar HAVING COUNT(*) > 1; Kaynağı DISTINCT ya da bir toplama/analitik (ROW_NUMBER) ile tekilleştirin, sonra MERGE'i tekrar çalıştırın. ON koşulunun yeterince ayırt edici olduğundan emin olun.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar