DB2 SQL dönüş kodları - DB2 SQL return codes

SQL Dönüş Kodları bir sonucu olarak programlama hatalarının teşhisi için günlük olarak kullanılır SQL tarafından çağrılar DB2 bilgisayar programları. Önemli bir özelliği DB2 programlar hata işlemedir. SQL Dönüş Kodunu içeren hata teşhisi alanda tutulur SQLCODE DB2 içinde SLCA blok.

SQLCODE artık SQL standardının bir parçası değildir. SQL standardı, SQLCODE'un yerini daha ayrıntılı SQLSTATE.

SQLCA

SQL iletişim alanı (SQLCA) yapısı, DB2 bir geri bildirim döndürme programı uygulama programı.

SQLCODE

SQLCODE alanı SQL dönüş kodunu içerir. Kod sıfır (0), negatif veya pozitif olabilir:

  • 0, yürütmenin başarılı olduğu anlamına gelir.
  • Negatif değerler, hata içeren başarısız bir yürütmeyi gösterir.
    Bir örnek -911'dir, bu da bir zaman aşımının bir geri alma.
  • Pozitif değer, bir uyarı ile başarılı bir yürütme anlamına gelir.
    Bir örnek +100'dür; bu, eşleşen satırların bulunmadığı veya imleç tablonun sonuna ulaştı.

DB2 için SQLCODE'lerin daha kapsamlı bir listesi aşağıda verilmiştir. Bu listenin kapsamlı olmadığını unutmayın. Ayrıca bazı SQLCODE'lerin yalnızca belirli DB2 ürünlerinde bulunabileceğini unutmayın; ör., yalnızca DB2'dez / OS, yalnızca DB2 LUW'da veya yalnızca DB2'deiSeries (AS400).

Sıfır (Başarılı)

  0 Başarılı

Negatif değerler (Hatalar)

-007Belirtilen 'karakter', SQL deyimlerinde geçerli bir karakter değil.
-010Dize ile başlayan dizi sabiti düzgün şekilde sonlandırılmamış.
-029INTO Maddesi gerekli.
-060GEÇERSİZ tip SPESİFİKASYON: spec
-084Kabul edilemez SQL ifadesi.
-101İfade çok uzun veya çok karmaşık.
-102Dize sabiti çok uzun.
-103Dize sabiti çok uzun. Maksimum 128 karakterdir.
-104SQL deyiminde geçersiz sembolle karşılaşıldı.
-105Dize sabiti çok uzun.
-117INSERT'deki değerlerin sayısı sütun sayısıyla eşleşmiyor.
-122Seçim Listesindeki Sütun veya İfade geçerli değil
-156Anahtar kelimenin yakınında geçersiz sözdizimi.
-180Tarih / Saat / Zaman Damgasında hatalı veriler.
-181Tarih / Saat / Zaman Damgasında hatalı veriler.
-188Bir DESCRIBE ifadesindeki ana bilgisayar değişkeni, bir adın geçerli bir dize temsili değildir.
-199Belirtilen anahtar kelimenin yasadışı kullanımı.
-203SÜTUN sütun adına BAŞVURU MUHTEŞEMDİR
-204DB2'ye tanımlanmamış nesne.
-205Sütun adı tabloda yok.
-206SELECT'in hiçbir tablosunda sütun yok.
-207Geçersiz sütun ismi.
-208SÜTUN sütun adı SONUÇ TABLOSUNUN PARÇASI DEĞİLDİR ÇÜNKÜ MADDENİN SİPARİŞİ GEÇERSİZDİR
-209Belirsiz sütun adı
-216Bir SELECT'te karşılaştırmanın her iki tarafında aynı sayıda ifade yok.
-224FETCH, YOĞUN bir imleci HASSAS yapamaz.
-229SET LOCALE deyiminde belirtilen yerel ayar bulunamadı.
-257Veri türünde örtük dönüşüme izin verilmez.
-302GİRİŞ DEĞİŞKEN VEYA PARAMETRE NUMARASI konum numarasının DEĞERİ HEDEF KOLON VEYA HEDEF DEĞER İÇİN GEÇERSİZ VEYA ÇOK BÜYÜK
-303VERİ TİPLERİ KARŞILAŞTIRILAMADIĞINDAN, ÇIKIŞ SUNUCUSUNA DEĞİŞKEN SAYI pozisyon numarasına BİR DEĞER ATANAMAZ
-305Boş gösterge gerekli.
-311Varchar, ekle veya güncelle. Doğru veri uzunluğuna sahip LEN alanı ayarlanmadı.
-313Belirtilen ana bilgisayar değişkenlerinin sayısı, parametre işaretlerinin sayısına eşit değil.
-401Bir işlemin işlenenlerinin veri türleri uyumlu değildir.
-404Belirtilen Sql İfadesi çok uzun bir Dize içeriyor.
-407GÜNCELLEME, EKLEME VEYA AYAR DEĞERİ BOŞ, ANCAK NESNE SÜTUNU sütun adı BOŞ DEĞER İÇEREMEZ
-408Bir değer, atama hedefinin veri türüyle uyumlu değil. Hedef adı "" dir. (*** OBS: Para algoritmaları casos ve CAST çözümlemesi)
-418Parametre işaretinin kullanımı geçerli değil.
-420Bir dizge bağımsız değişkeninin değeri 'işlev adı' işlevi için kabul edilebilir değildi
-433Veriler çok büyük
-438Uygulama, teşhis metninde hata oluşturdu: metin
-440Rutin & 1 in & 2 belirtilen parametrelerle bulunamadı. Belirtilen ada ve uyumlu bağımsız değişkenlere sahip bir işlev veya prosedür bulunamadı. [1]
-482Prosedür hiçbir yer bulucu döndürmedi.
-501İmleç FETCH'te açık değil.
-502Zaten açık olan imleci açma.
-503Güncellenen sütunun belirtilmesi gerekiyor.
-504İmleç adı bildirilmedi.
-510Update veya Delete ifadesinin imleci ile gösterilen Tablo değiştirilemez.
-530INSERT / UPDATE'i engelleyen bilgi tutarlılığı
-532Bilgi tutarlılığı (DELETE RESTRICT kuralı) DELETE'i engelliyor.
-536Bilgi tutarlılığı (DELETE RESTRICT kuralı) DELETE'i engelliyor.
-545INSERT / UPDATE'i engelleyen kısıtlamayı kontrol edin.
-551Yetkilendirme hatası.
-554Bir yetkilendirme kimliği veya bir rol kendisine ayrıcalık VERMEZ.
-601Zaten var olan bir nesneyi yaratmaya çalıştınız
-602Oluşturma dizininde çok fazla sütun belirtildi.
-603Tablo, tanımlanan sütunların ve dönemlerin değerlerine göre yinelenen satırlar içerdiğinden benzersiz bir dizin oluşturulamaz
-604bir veri türü tanımı, geçersiz bir uzunluk, hassasiyet veya ölçek özelliği belirtir
-607bu nesne için işlem veya seçenek işlemi tanımlanmadı
-610uyarı: nesne üzerinde oluştur / değiştir, beklemedeki nesneyi yerleştirdi
-611tablo alanının kilit boyutu tablo alanı veya tablo olduğunda yalnızca lockmax 0 belirtilebilir
-612tanımlayıcı, yinelenen bir addır
-613birincil anahtar veya karma anahtar veya benzersiz bir kısıtlama çok uzun veya çok fazla sütun ve dönem içeriyor
-614indeks oluşturulamaz veya değiştirilemez veya indeks için sütunların iç uzunluklarının toplamı izin verilen maksimum değerden daha büyük olduğu için bir sütunun uzunluğu değiştirilemez
-615kullanımdaki bir pakette işlem türüne izin verilmez
-616obj-type1 obj-name1, obj-type2 obj-name2 tarafından başvurulduğu için bırakılamaz
-617tip 1 indeksi tablo için geçerli değildir
-618sistem veritabanlarında işlem işlemine izin verilmiyor
-619veritabanı durdurulmadığından işleme izin verilmedi
-620veritabanı türü veritabanında bir boşluk türü için stmt türü deyimdeki anahtar sözcüğe izin verilmez
-621yinelenen dbid dbid algılandı ve daha önce veritabanı-adına atandı
-622karma veriler için geçersiz çünkü karma veri yükleme seçeneği hayır
-623cluster tablo adı için geçerli değil
-624tablo tablo-adı zaten bir birincil anahtara veya belirtilen sütun ve dönemlere sahip benzersiz bir kısıtlamaya sahip
-625tablo tablo-adı, birincil veya benzersiz anahtarın benzersizliğini zorlamak için bir dizine sahip değil
-625uyarı: tablonun tanımı eksik olarak değiştirildi
-626alter ifadesi çalıştırılabilir değil çünkü sayfa seti durdurulmadı
-627alter ifadesi geçersiz çünkü tablo alanı veya dizin kullanıcı tarafından yönetilen veri kümelerine sahip
-628hükümler birbirini dışlar
-629set null, yabancı anahtar adı null değerler içeremediğinden belirtilemez
-630hata: WHERE NOT NULL belirtimi tip 1 dizinler için geçersiz
-631yabancı anahtar adı çok uzun veya çok fazla sütun içeriyor
-632tablo, DELETE kuralı kısıtlamaları nedeniyle tablo adına bağımlı olarak tanımlanamaz
-633DELETE kuralı, DELETE kuralı olmalıdır
-634DELETE kuralı kademeli olmamalıdır
-635DELETE kuralları farklı olamaz veya boş değer olarak ayarlanamaz
-636partition part-num için belirtilen aralıklar geçerli değil
-637yinelenen anahtar kelime-adı anahtar kelime veya cümle
-638tablo tablo adı oluşturulamıyor çünkü sütun tanımı eksik
-639null küme DELETE kuralına sahip bir yabancı anahtarın boş değer atanabilir bir sütunu, bölümlenmiş bir dizinin anahtarının bir sütunu olamaz
-640locksize satırı belirtilemez çünkü bu tablo alanındaki tablonun tip 1 indeksi var
-642benzersiz kısıtlamalarda çok fazla sütun
-643bir kontrol kısıtlaması veya bir dizinin bir sütunu için bir ifadenin değeri, izin verilen maksimum uzunluk anahtar ifadesini aşıyor
-644deyim türünde anahtar sözcük veya anahtar sözcük-veya-cümlesi için geçersiz değer belirtildi
-645WHERE NOT NULL, dizin anahtarı null değerler içeremediğinden yok sayılır
-646table table-name belirtilen tablo alanında table-space-name içinde yaratılamaz çünkü zaten bir tablo içeriyor
-647örtük veya açık tablo alanı veya dizin alanı adı için tampon havuzu bp adı etkinleştirilmedi
-650değişiklik ifadesi yürütülemez, neden-kod telif hakkı 2014 TheAmericanProgrammer.com Yetkisiz kopyalama yasaktır
-651tablo açıklaması maksimum nesne tanımlayıcı boyutunu aşıyor.
-652kurulum tanımlı düzenleme veya doğrulama prosedürünün proc-name ihlali
-653bölümlenmiş tablo alanındaki tablo tablo-adı tspace-adı, bölümlenmiş dizini oluşturulmadığından kullanılamaz
-655oluşturma veya değiştirme stok grubu geçersizdir çünkü depolama grubu hem belirli hem de spesifik olmayan hacim kimliklerine sahip olacaktır
-658ifade ifadesi kullanılarak bir nesne türü bırakılamaz
-660dizin dizin adı, bölümlenmiş tablo alanında tspace-adı oluşturulamaz veya değiştirilemez, çünkü anahtar sınırları belirtilmemiştir
-661nesne-türü nesne-adı, bölümlendirilmiş tablo alanında yaratılamaz tspace-name bölüm belirtimlerinin sayısı, tablo alanının bölüm sayısına eşit değildir
-662bölümlenmiş bir dizin bir tablo alanında oluşturulamaz veya bir tablo alanı dizin kontrollü olamaz. tablo alanı tspace-name, neden neden-kod
-663anahtar sınır değerlerinin sayısı sıfırdır veya dizin dizin adı anahtarındaki sütun sayısından büyüktür
-664bölümlenmiş dizin için sınır anahtarı alanlarının dahili uzunluğu, dizin yöneticisi tarafından belirlenen uzunluğu aşıyor
-665bir alter ifadesinin bölüm cümlesi atlanmış veya geçersiz
-666stmt-verb nesnesi, işlev devam ettiği için yürütülemiyor
-667bölümlenmiş bir tablo alanı için kümeleme dizini açıkça bırakılamaz
-668tablo, satır özniteliği duyarlılığı ile tanımlanmış bir düzenleme prosedürüne sahip olduğundan sütun tabloya eklenemez
-669nesne açıkça bırakılamaz. sebep-kod
-670tablonun kayıt uzunluğu sayfa boyutu sınırını aşıyor
-671Tablo boşluğunun arabellek havuzu özniteliği, belirtilen şekilde değiştirilemez çünkü bu, tablo alanının sayfa boyutunu değiştirir
-672tablo_adı tablosunda işlem düşüşüne izin verilmez
-676dizinin fiziksel özellikleri, belirtilen ifadeye göre uyumsuzdur. ifade başarısız oldu. sebep-kod
-677arabellek havuzu genişletmesi için yetersiz sanal depolama
-678dizin sınır anahtarı için belirtilen sabit, karşılık gelen sütun sütun adının veri türü veri türüne uygun olmalıdır
-679nesne adı, nesnede bir bırakma beklediğinden oluşturulamıyor
-680tablo, görünüm veya tablo işlevi için çok fazla sütun belirtildi
-681sütun sütun adı kurulum tanımlı alan prosedürünü ihlal ediyor. rt: dönüş kodu, rs: neden kodu, msg: mesaj belirteci
-682saha prosedürü prosedür adı yüklenemedi
-683sütun, farklı tür, işlev veya prosedür veri öğesi için belirtim, uyumsuz maddeler içeriyor
-684sabit liste başlangıç ​​dizesinin uzunluğu çok uzun
-685geçersiz alan türü, sütun adı
-686bir alan prosedürü ile tanımlanan sütun, farklı alan prosedürü olan başka bir sütun ile karşılaştırılamaz
-687karşılaştırılamaz alan türleri
-688alan prosedüründen yanlış veri döndürüldü, sütun adı, msgno
-689bağımlı bir tablo için çok fazla sütun tanımlandı
-690ifade, veri tanımlama kontrol desteği tarafından reddedilir. sebep-kod
-691gerekli kayıt tablosu tablo adı mevcut değil
-692ddl kayıt tablosu tablo adı için gerekli benzersiz dizin dizin adı mevcut değil
-693ddl kayıt tablosundaki sütun sütun adı veya dizin adı doğru şekilde tanımlanmamış
-694ddl kayıt tablosu table-name üzerinde bir bırakma beklediğinden şema ifadesi yürütülemiyor
-694ddl ifadesi, ddl kayıt tablosunda bir düşüş beklediğinden yürütülemez
-695tablo tablo adının güvenlik etiketi sütunu için geçersiz değer seclabel belirtildi
-696tetik tetikleyici adının tanımı, geçersiz bir korelasyon adı veya geçiş tablosu adı kullanımı içerir. neden kodu = neden kodu
-697her ifade cümlesiyle tanımlanan bir tetikleyicide eski veya yeni korelasyon adlarına izin verilmez. before cümlesine sahip bir tetikleyicide old_table veya new_table adlarına izin verilmez.
-747Tablo mevcut değil.
-803Ekleme veya güncelleme sırasında anahtarı kopyala.
-804SQL ifadesi için girdi parametrelerinde hata.
-805DBRM veya paket planda bulunamadı.
-811SELECT INTO'da birden fazla satır alındı.
-818Plan ve program: zaman damgası uyuşmazlığı.
-904Kullanılamayan kaynak. Başka biri verilerinizi kilitliyor.
-911Kilitlenme veya zaman aşımı. Geri alma işlemi yapıldı.
-913Kilitlenme veya zaman aşımı. Geri alma yok.
-922Yetkilendirme gerekli.
-924DB2 Bağlantısı dahili hatası.
-927Dil arabirimi çağrıldı, ancak bağlantı yapılmadı.
-955İfadeyi işlemek için sıralama belleği ayrılamaz.
-964İşlem günlüğü alanı tükenmiştir veya etkin işlemlerin sayısında geçici artış.
-998İşlem veya sezgisel işleme sırasında hata oluştu.
  
-7008Belirtilen nesne, istenen işlem için geçerli değil.
-10330Veritabanını değiştirme izni reddedildi. Sistem yöneticisine başvurun.
-30090Uygulama yürütme ortamı için uzaktan işlem geçersiz.

[1]

Olumlu Değerler (Uyarılar)

  +98Dinamik bir SQL ifadesi noktalı virgülle biter
+100Satır bulunamadı veya imlecin sonu.
+222DELETE ifadesi içindeki bir satırı getirmeye çalışıyor.
+223UPDATE ifadesindeki bir satırı getirmeye çalışıyor.
+231Bir ÖNCE veya SONRA sonrasında FETCH, ancak geçerli bir satırda değil.
+304Veri türüne (veri türü 1) sahip bir değer, bir ana bilgisayar değişkenine atanamaz çünkü değer, veri türü (veri türü 2) ile konumdaki (konum numarası) ana bilgisayar değişkeninin aralığı içinde değildir
+354Bir satır kümesi getirme ifadesi, bir veya daha fazla veri satırı döndürmüş olabilir. ancak bir veya daha fazla uyarı koşuluyla da karşılaşıldı. Karşılaşılan koşullarla ilgili daha fazla bilgi için get diagnostics ifadesini kullanın
+562Bir ayrıcalık tanınması, hibe alan, vekil verenden gelen ayrıcalığa zaten sahip olduğu için göz ardı edildi.
+802Boş gösterge, aritmetik olarak -2'ye ayarlandı.

Referanslar

  • "Z / OS Kodları için DB2 Sürüm 9.1" (PDF). Eylül 2013.
  • "DB2 SQL KODU Açıklaması ve çözümleri".
  • "SQL kodları". Eylül 2013.