SQL0801N | Nullával történő osztásra történt kísérlet. |
Magyarázat: Az oszlopfüggvény vagy aritmetikai kifejezés feldolgozása nullával történő osztást eredményezett.
Az utasítás nem dolgozható föl. INSERT, UPDATE vagy DELETE utasítások esetén nem történt beszúrás vagy frissítés.
Felhasználói válasz: A hiba okának meghatározásához vizsgálja meg az SQL utasítást! Ha a probléma adatfüggő, meg kell vizsgálni azokat az adatokat, amelyek a hiba bekövetkeztekor kerültek feldolgozásra. Az adattípusok érvényes tartományát az alábbi címen találja: SQL Reference
Egyesített rendszer felhasználói: A hiba okának meghatározásához vizsgálja meg az SQL utasítást! Ha a probléma adatfüggő, vizsgálja meg a hiba felléptekor az adatforrásnál feldolgozás alatt álló adatokat!
sqlcode: -801
sqlstate: 22012
SQL0802N | Aritmetikai túlcsordulás vagy más aritmetikai processzorszintű hiba történt. |
Magyarázat: Oszlopfüggvény vagy aritmetikai kifejezés feldolgozása aritmetikai túlcsordulást eredményezett.
Az utasítás nem dolgozható föl. INSERT, UPDATE vagy DELETE utasítások esetén nem történt beszúrás vagy frissítés.
Felhasználói válasz: A hiba okának meghatározásához vizsgálja meg az SQL utasítást! Ha a probléma adatfüggő, meg kell vizsgálni azokat az adatokat, amelyek a hiba bekövetkeztekor kerültek feldolgozásra. Az adattípusok érvényes tartományát az alábbi címen találja: SQL Reference
Ez a hiba akkor is előfordulhat, amikor az oszlopfüggvények nem tudják kezelni az SQL utasítás által visszaadott értéket. Például, egy SELECT COUNT utasítás kiadása olyan táblán, amely több sort tartamlaz, mint a MAX_LONGINT_INT SQL korlát, aritmetikai túlcsordulás hibához fog vezetni. Fontolja meg a COUNT_BIG oszlopfüggvény használatát 2 147 483 647 sornál több sort tartalmazó táblák esetében!
Egyesített rendszer felhasználói: A hiba okának meghatározásához vizsgálja meg az SQL utasítást! Ha a probléma adatfüggő, vizsgálja meg a hiba felléptekor az adatforrásnál feldolgozás alatt álló adatokat! Nézze meg az adatforráshoz tartozó SQL leírásban az adattípusok érvényes tartományait!
sqlcode: -802
sqlstate: 22003
SQL0803N | A DELETE utasítás kiváltotta idegen kulcs frissítés, az INSERT utasítás vagy UPDATE utasítás egy vagy több értéke érvénytelen, mert ezek ismétlődő sorokat eredményeznének egy elsődleges kulccsal, egyedi korlátozással vagy egyedi indexszel rendelkező táblában. |
Magyarázat: Az INSERT vagy UPDATE objektumtáblát egy vagy több UNIQUE index arra korlátozza, hogy egyedi értékei legyenek bizonyos oszlopaiban vagy oszlopcsoportjaiban. Esetleg a szülőtáblára kiadott DELETE utasítás egy olyan leszármazott tábla idegen kulcsának frissítését okozta, amelyet egy vagy több UNIQUE index arra korlátoz, hogy egyedi értékei legyenek bizonyos oszlopainak vagy oszlopcsoportjainak. Az egyedi indexnek azért jöhetett létre, hogy egy, a táblához megadott elsődleges kulcsot vagy egyedi korlátozást támogasson. A kért beszúrás vagy frissítés végrehajtása az oszlopértékek többszörözését jelentené.
Másrészt, ha egy nézet az INSERT vagy UPDATE utasítás objektuma, akkor az a tábla korlátozott, amelyhez a nézet tartozik.
Az utasítás nem dolgozható föl. A tábla változatlan marad.
Felhasználói válasz: Vizsgálja meg az objektumtáblára megadott UNIQUE indexek definícióját azon egyediség korlátozások meghatározásához, amelyeket ezek az indexek határoznak meg!
UPDATE utasítás esetén győződjék meg róla, hogy a megadott művelet maga ne legyen ellentmondásban ezekkel az egyediség korlátozásokkal! Ha ez nem mutat hibát, vizsgálja meg az objektumtábla tartalmát a hiba okának meghatározásához!
INSERT utasítás esetén vizsgálja meg az objektumtábla tartalmát annak meghatározásához, hogy a megadott értéklista mely értéke sérti meg az egyediség korlátozást! Másrészt, ha az INSERT utasítás allekérdezést tartalmaz, az objektumtábla allekérdezés által címzett részeit egyeztetni kell az objektumtábla tartalmával a hiba okának meghatározásához!
DELETE utasítás esetén vizsgálja meg a leszármazott táblákban idegen kulcsokon létrehozott olyan egyedi korlátozásokat, amelyek az ON DELETE SET NULL szabállyal rendelkeznek! Egy ilyen tábla idegen kulcsának egy oszlopa szerepel egy egyedi indexben, ahol nem kaphat NULL értéket, mert már NULL szerepel a tábla oszlopában.
Egyesített rendszer felhasználói: Szűkítse a problémát a kérést meghiúsító adatforrásra (az SQL utasítás feldolgozását meghiúsító adatforrás meghatározásához nézze meg ezt Problémameghatározási útmutató), és vizsgálja meg az előzőleg felsorolt helyzetekhez tartozó indexdefiníciókat és adatokat!
sqlcode: -803
sqlstate: 23505
SQL0804N | Az alkalmazási program aktuális kérelemhez tartozó bemeneti paraméterei érvénytelenek. Ok-kód "<ok-kód>". Ha az SQLDA-ban lévő forrásváltozó vagy SQLVAR érvénytelen, akkor: forrásváltozó/SQLVAR száma = "<változószám>", SQLTYPE = "<sqltype>", SQLLEN = "<sqllen>", forrásváltozó/SQLVAR típusa = "<bemeneti_vagy_kimeneti>". |
Magyarázat: Hiba történt az aktuális kérés feldolgozása közben.
Az okkódok értelmezése a következő:
Egyesített rendszer felhasználói: A kért adat adattípusa nem támogatott az elérni kívánt befogadott kiszolgáló vagy adatforrás által.
Forrásváltozókat tartalmazó SQL utasítások esetén a forrásváltozószám segítségével számolja ki az utasítás (vagy alutasítás összetett SQL-ek esetén) elejéről az érvénytelen forrásváltozó helyét! SQLDA-t használó utasítások esetén az SQLVAR szám az érvénytelen SQLVAR-t azonosítja. Bementi SQLDA esetén csak a bemeneti forrásváltozókat vagy SQLVAR-okat számolja! Hasonlóképpen tegyen kimenet esetén is! Megjegyzés: ez a szám 1-től kezdődik.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Vizsgálja meg az alkalmazási programot az említett hibák szempontjából! Megjegyzés: a programozónak nem volna szabad az előfordító kimenetének megváltoztatását megkísérelni.
Egyesített rendszer felhasználói: Ha 102-es okkódot kapott, akkor adjon meg támogatott adattípus, és küldje el újra a programot!
sqlcode: -804
sqlstate: 07002
SQL0805N | A következő csomag "<csomagnév>" nem található. |
Magyarázat: Az üzenet (SQLCODE) lehetséges okai:
Az utasítás nem dolgozható föl.
Felhasználói válasz: Adja meg a helyes csomagnevet, vagy rendelje a programot az adatbázishoz! Ha a futó alkalmazás nincs az adatbázishoz rendelve, vegye fel a kapcsolatot az adatbázis adminisztrátorával, hogy az elvégezze a szükséges összerendelést!
Ha a DB2 segédprogramokat újra hozzá kell rendelni az adatbázishoz, az adatbázis adminisztrátora ezt a következő CLP parancsok valamelyikének a példány bnd alkönyvtárából való kiadásával teheti meg (ehhez összeköttetésben kell állni az adatbázissal):
Egyesített rendszer felhasználói: Biztosítsa, hogy a egyesített kiszolgáló által igényelt csomagok az alkalmazható adatforrásokkal legyenek összerendelve! A csomagok adatforrásokhoz történő rendeléséről a Telepítési és konfigurálási kiegészítés kézikönyv tartalmaz további információt.
sqlcode: -805
sqlstate: 51002
SQL0808N | A CONNECT utasítás szemantikája nem konzisztens a többi létező kapcsolattal. |
Magyarázat: A utasítás egy olyan forrásfájlból származik, amely más kapcsolatbeállításokkal lett előfordítva (SQLRULES, CONNECT típus, SYNCPOINT vagy RELEASE típus), mint az a forrásfájl, amelyhez kapcsolat tartozik.
Felhasználói válasz: Győződjék meg róla, hogy az összes forrásfájl ugyanazzal a CONNECT beállítással van előfordítva, vagy, ha ez nem lehetséges, az első CONNECT utasítás kiadása előtt hívja meg a SET CLIENT API-t az alkalmazási folyamat kívánt opcióinak beállításához!
sqlcode: -808
sqlstate: 08001
SQL0811N | Egy skalár értékű egyesített kiválasztásnak, SELECT INTO utasításnak vagy VALUES INTO utasításnak több sor az eredménye. |
Magyarázat: A következők valamelyike okozta a hibát:
Egyesített rendszer felhasználói: Ezt a helyzetet észlelheti a egyesített kiszolgáló vagy az adatforrás.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Győződjék meg róla, hogy az utasítás a megfelelő feltételspecifikációkat tartalmazza! Ha igen, akkor olyan adathibáról lehet szó, amely egy sor helyett több sor visszaadásához vezet.
Egyesített rendszer felhasználói: Szűkítse a problémát a kérést meghiúsító adatforrásra (az SQL utasítás feldolgozását meghiúsító adatforrás meghatározásához nézze meg ezt Problémameghatározási útmutató), és vizsgálja meg az objektumhoz tartozó kiválasztási feltételeket és adatokat!
sqlcode: -811
sqlstate: 21000
SQL0817N | Az SQL utasítás nem hajtható végre, mert tiltott frissítési műveletet eredményezne. |
Magyarázat: Az alkalmazás megpróbált egy olyan SQL utasítást végrehajtani, amely felhasználói adatok vagy alrendszer-katalógus frissítéséhez vezetne. Ez a következő okok egyike miatt tilos:
Az ilyen SQL utasítások a következők: INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT és REVOKE.
Az utasítás nem hajtható végre.
Felhasználói válasz: Ha az alkalmazás IMS csak-lekérdezés tranzakcióként fut, kérje meg az IMS rendszerprogramozóját, hogy változtassa meg a tranzakció csak-lekérdezés állapotát.
Ha az IMS vagy CICS alkalmazás távoli frissítést kísérel meg, akkor az alkalmazást meg kell változtatni úgy, hogy helyi alkalmazásként fusson a DBMS kiszolgálón, vagy frissíteni kell a DBMS kiszolgálót úgy, hogy támogassa a kétfázisú protokoll szerinti működést.
Ha az alkalmazás több helyen lévő adatokat próbált meg frissíteni, akkor meg kell változtatni az alkalmazást, vagy az összes érintett DBMS-t frissíteni kell úgy, hogy támogassa a kétfázisú protokoll szerinti működést.
sqlcode: -817
sqlstate: 25000
SQL0818N | Időbélyeg-ütközés keletkezett. |
Magyarázat: Az előfordítási időben az előfordító által előállított időbélyeg nem egyezik meg a csomag összerendelési időben kapott időbélyegével.
Ezt a hibát a következő okozhatja:
Egyesített rendszer felhasználói: Az előzőekben felsoroltakon túl a hiba oka lehet még az is, hogy a szükséges csomagok nincsenek összerendelve az összes alkalmazható adatforrásban.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Rendelje a programot újra az adatbázishoz, de az objektummodulnak megfelelő összerendelő fájl használatával, vagy hajtsa végre az adatbázisban tárolt csomagnak megfelelő programot!
Ha a minta adatbázist telepíti, írja föl az üzenet számát és szövegét, majd keresse meg a technikai támogatást nyújtó képviselőjet!
Egyesített rendszer felhasználói: Az előzőekben felsorolt műveleteken túl biztosítsa, hogy a egyesített kiszolgáló által igényelt csomagok az alkalmazható adatforrásokkal legyenek összerendelve! A csomagok adatforrásokhoz történő rendeléséről a Telepítési és konfigurálási kiegészítés tartalmaz további információt.
sqlcode: -818
sqlstate: 51003
SQL0822N | Az SQLDA érvénytelen adatcímet vagy jelzőváltozó-címet tartalmaz. |
Magyarázat: Az alkalmazási program érvénytelen címet helyezett az SQLDA-ba.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Javítsa ki úgy az alkalmazási programot, hogy az érvényes címeket helyezzen az SQLDA-ba!
sqlcode: -822
sqlstate: 51004
SQL0840N | Túl sok elemet eredményezett egy SELECT lista. |
Magyarázat: A SELECT listában visszaadott elemek száma meghaladja a megengedett legnagyobb értéket. A (nem egyszerű táblakifejezésekben lévő) SELECT listák megengedett legnagyobb száma 1012. Az egyszerű táblakifejezésekben lévő SELECT listák megengedett legnagyobb száma 5000.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Határozza meg, hogy szükség van-e minden információra! (Megjegyzés: a SELECT * FROM A, B, C SQL utasítás által visszaadott SELECT lista elemeinek száma a három táblában levő oszlopok számának összege.) Ha lehetséges, írja át úgy az SQL utasítást, hogy csak a szükséges információk kerüljenek visszaadásra! Ha minden információra szükség van, bontsa két vagy három utasításra az SQL utasítást!
sqlcode: -840
sqlstate: 54004
SQL0842N | Már létezik összeköttetés a kiszolgálóval: "<kiszolgálónév>". |
Magyarázat: Az SQLRULES(STD) érvényben van, és a CONNECT utasítás egy létező SQL kapcsolatot jelölt meg.
Felhasználói válasz: A javítás a hibától függ:
Javítsa ki a hibát az alkalmazásban és próbálja meg újra!
sqlcode: -842
sqlstate: 08002
SQL0843N | A kiszolgálónév nem ad meg létező kapcsolatot. |
Magyarázat: Utasítás, parancs vagy API olyan kiszolgálónevet adott meg, amely nem azonosítja az alkalmazási folyamat egy létező SQL kapcsolatát.
Ez a következők használata mellett történhetett meg:
Felhasználói válasz: A javítás a hibától függ:
Javítsa ki a hibát az alkalmazásban és próbálja meg újra!
sqlcode: -843
sqlstate: 08003
SQL0846N | Érvénytelenül lett az "<oszlopnév>" oszlop specifikálva. |
Magyarázat: ALTER vagy CREATE TABLE utasítás esetében a specifikáció az alábbi okok egyike miatt lehet érvénytelen:
Az utasítás nem dolgozható föl.
Felhasználói válasz: Javítsa ki a szintaxist, és küldje el újra az utasítást!
sqlcode: -846
sqlstate: 42815
SQL0859N | A tranzakciókezelő adatbázis elérése nem sikerült, SQLCODE = "<SQLCODE>". |
Magyarázat: Az alkalmazás előfordítása a SYNCPOINT(TWOPHASE) beállítással történt, és a kétfázisú véglegesítés összehangolásához tranzakciókezelő adatbázisra van szükség. A tranzakciókezelő adatbázis elérhetetlensége a következő okok miatt állhat fenn:
Felhasználói válasz: Lehetséges műveletek:
sqlcode: -859
sqlstate: 08502
SQL0863W | Sikerült létrehozni a kapcsolatot, de csak egybájtos karaktereket szabad használni. |
Magyarázat: A kiszolgáló adatbázis és az ügyfél alkalmazás különböző nyelvtípusokhoz tartozó kódlapokat használ, és bármilyen olyan karakter, amely a 7-bites ASCII tartományon kívül esik, nem biztos, hogy elérhető lesz a másik környezetben (mindegyik kódlapban csak a 7-bites ASCII tartomány létezik). Például, létrejöhet kapcsolat egy japán és egy latin-1 kódlap között, de egyik japán karakter sem lesz elérhető a latin-1 kódlapon, ezért ezeket a karaktereket nem szabad használni, az angol karakterek azonban használhatók.
Egyesített rendszer felhasználói: A lehetséges okok:
Felhasználói válasz: Ne adjon ki az alkalmazás és az adatbázis kódlapjában eltérő karaktereket használó SQL utasítást vagy parancsot!
Egyesített rendszer felhasználói: Ne adjon ki az ügyfél rendszerben, az egyesített rendszerben és az adatforrásban eltérő karaktereket használó SQL utasítást!
sqlcode: +863
sqlstate: 01539
SQL0865N | Érvénytelen tm_database érték. |
Magyarázat: Az adatbáziskezelő konfiguráció tm_database paraméterében megadott adatbázis érvénytelen. Az adatbázisnak DB2 V2.1 vagy későbbi verziójúnak kell lennie és nem lehet DRDA protokollal (vagyis DB2 Connect-en keresztül) elért adatbázis.
Az utasítás nem hajtható végre.
Felhasználói válasz:
sqlcode: -865
sqlstate: 08001
SQL0866N | Sikertelen kapcsolatátirányítás. Okkód: "<okkód>" |
Magyarázat: Egy adatbázis katalógusba vételének hatására egy kapcsolat nem támogatott módon került átirányításra.
A lehetséges okkódok a következők:
Felhasználói válasz: Az egyes okkódok szerint a következők a teendők:
sqlcode: -866
sqlstate: 08001
SQL0868N | Kísérlet történt egy USER/USING tagmondattal rendelkező CONNECT utasítás végrehajtására olyan kiszolgálóval kapcsolatban, amellyel már fennáll a kapcsolat. |
Magyarázat: A kiszolgálóval már létrejött egy aktuális vagy rejtett kapcsolat, így USER/USING tagmondatot használó CONNECT utasítás kiadása erre a kiszolgálóra érvénytelen.
Felhasználói válasz: Lehetséges teendők:
sqlcode: -868
sqlstate: 51022
SQL0880N | A "<mentési_pont_név>" mentési pont nem létezik, vagy ebben a szövegkörnyezetben érvénytelen. |
Magyarázat: Hiba történt egy RELEASE vagy ROLLBACK TO SAVEPOINT "<mentési_pont_név>" utasítás kiadásakor. Vagy nem létezik ilyen nevű mentési pont, vagy az aktuális atomi végrehajtási környezeten kívül lett létrehozva.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Javítsa ki a mentési pont nevét az utasításban, és adja ki újra az utasítást!
sqlcode: -880
sqlstate: 3B001
SQL0881N | "<mentési_pont_név>" nevű mentési pont már létezik, de ez a mentési pont név nem újrafelhasználható. |
Magyarázat: A "<mentési_pont_név>" név már használva lett egy SAVEPOINT utasításban. A mentési pont nevet nem lehet újrafelhasználni, mert legalább egy ezt a nevet használó SAVEPOINT utasítás megadta a UNIQUE kulcsszót, amely megköveteli, hogy a név egyedi legyen.
Az utasítás nem dolgozható föl. Az új mentési pont nem lett beállítva. A régi mentési pont ugyanazzal a névvel még mindig létezik.
Felhasználói válasz: Válasszon másik nevet ennek a mentési pontnak, és adja ki újra a SAVEPOINT utasítást! Ha a létező mentési pont újrafelhasználása szükséges, adja ki először a RELEASE SAVEPOINT utasítást a meglevő mentési pont felszabadítására! Azonban legyen rá felkészülve, hogy a RELEASE SAVEPOINT utasítás felszabadítja a tranzakcióban a megadott mentési pont után létrehozott mentési pontokat is. További tájékoztatásért lásd: SQL Reference.
sqlcode: -881
sqlstate: 3B501
SQL0882N | A mentési pont nem létezik. |
Magyarázat: Hiba történt egy ROLLBACK TO SAVEPOINT utasítás kiadásakor. ROLLBACK TO SAVEPOINT utasítás kiadása konkrét mentési pont név nélkül nem megengedett, amikor nincs létező mentési pont.
Az utasítás nem dolgozható föl.
Felhasználói válasz: Adjon ki másik utasítást, vagy próbálja meg visszagörgetni a teljes tranzakció a ROLLBACK utasítással!
sqlcode: -882
sqlstate: 3B502