" není pro " " Chybný příkaz SQL "
Dynamický příkaz GRANT
¹
Dynamický příkaz REVOKE
¹
Dynamický příkaz ALTER
¹
Dynamický příkaz CREATE
¹
definice podmínky obsahuje poddotaz,
¹
Dynamický příkaz DROP
¹
definice podmínky obsahuje sloupcovou funkci,
¹
¹
definice podmínky obsahuje hostitelskou proměnnou,
Statický nebo dynamický příkaz SET CURRENT SCHEMA.
¹
definice podmínky obsahuje značku parametru,
¹
definice podmínky obsahuje speciální registr,
¹
definice podmínky obsahuje funkci, která není deterministická,
¹
definice podmínky obsahuje uživatelskou funkci s externí akcí,
¹
definice podmínky obsahuje uživatelskou funkci s volbou scratchpad,
72
Přehled zpráv, díl 2
"
SQL0551N ¹SQL0553N 'id-umístění.id-kolekce.id-balíku'. Pro "
hodnoty autorizační identifikace, operace a jména v daném zdroji dat nejsou známé. Příkaz nelze zpracovat. Reakce uživatele: Ujistěte se, že uživatel "
Reakce uživatele: Odstraňte chybu provedením některé z následujících akcí:
Jestliže je třeba znovu svázat pomocné programy DB2 s databází, může to provést administrátor databáze zadáním jednoho z následujících příkazů prostřednictvím rozhraní příkazového řádku v podadresáři bnd příslušné instance v době, kdy je připojen k databázi:
¹
¹
„DB2 bind @db2ubind.lst blocking all grant public“ pro pomocné programy DB2.
¹
„DB2 bind @db2cli.lst blocking all grant public“ pro rozhraní příkazového řádku.
Příkaz jazyka SQL nelze provést.
Jedná-li se o vložený příkaz SQL, odstraňte jej, proveête novou prekompilaci a kompilaci aplikačního programu a opakujte příkaz BIND s volbou DYNAMICRULES(BIND).
¹
Je-li to možné, použijte příkaz SQL s balíkem nebo plánem vázaný funkcí DYNAMICRULES(RUN).
¹
Zadejte příkaz REBIND s volbou DYNAMICRULES(RUN) pro plán nebo balík, ke kterému je vázán příkaz SQL.
sqlcode: -549 sqlstate: 42509 SQL0551N Uživatel "
sqlcode: -551 sqlstate: 42501 SQL0552N Uživatel "
Objekty těch typů, které existovaly v verzích programu DB2, které předcházely verzi 2 (tabulky, pohledy, indexy a balíky), nelze vytvořit se jménem schématu SYSCAT, SYSFUN, SYSSTAT nebo SYSIBM. Kapitola 2. Zprávy SQL
73
SQL0554N ¹SQL0562N
¹
Doporučujeme, aby jména schémat nezačínala na SYS, protože v budoucnu mohou být další takto začínající schémata vyhrazena pro výhradní použití programem DB2.
zajistěte, aby ke každé autorizační identifikaci v seznamu příslušelo alespoň jedno z uvedených oprávnění.
Objekty typů, které se objevily až v programu DB2 verze 2 (uživatelské funkce, odlišené typy, spouštěče, schémata a aliasy), nelze vytvořit žádným jménem schématu, které začíná písmeny SYS.
sqlstate: 42504
sqlcode: -556
SQL0557N Danou kombinaci oprávnění nelze udělit či odebrat.
Příkaz nelze zpracovat.
Vysvětlení: Došlo k jedné z následujících situací:
Reakce uživatele: Použijte platné jméno schématu nebo odstraňte explicitní jméno schématu a spusÝte příkaz znovu.
¹
Příkaz GRANT nebo REVOKE obsahuje kombinaci oprávnění z různých tříd. Všechna oprávnění musí být z jedné třídy. Příklady jsou DATABASE, PLAN nebo TABLE.
¹
Pomocí příkazu GRANT mělo být k pohledu uděleno oprávnění, které není povoleno. K pohledu nemohou být udělena oprávnění ALTER, INDEX a REFERENCES.
sqlcode: -553 sqlstate: 42939 SQL0554N Uživatel nemůže udělit oprávnění sám sobě. Vysvětlení: Uživatel se pokusil provést příkaz GRANT, přičemž jeho autorizační identifikace se vyskytuje jako jedna z položek seznamu autorizačních identifikací, kterým mají být oprávnění poskytnuta.
Příkaz nelze zpracovat.
Příkaz nelze zpracovat.
sqlstate: 42852
Reakce uživatele: Odstraňte autorizační identifikaci ze seznamu. sqlcode: -554 sqlstate: 42502 SQL0555N Uživatel nemůže sám sobě odebrat oprávnění. Vysvětlení: Uživatel se pokusil provést příkaz REVOKE, přičemž jeho autorizační identifikace se vyskytuje jako jedna z položek seznamu autorizačních identifikací, kterým mají být oprávnění odebrána.
Reakce uživatele: Opravte příkaz a zadejte jej znovu. sqlcode: -557
SQL0558N Pokus odebrat oprávnění uživateli "
DBADM
Příkaz nelze zpracovat.
¹
CONTROL
Reakce uživatele: Odstraňte autorizační identifikaci ze seznamu.
Příkaz nelze provést. Nejsou odebrána žádná oprávnění.
sqlcode: -555
Reakce uživatele: V případě potřeby odeberte oprávnění "
sqlstate: 42502
sqlcode: -558
SQL0556N Pokus odebrat oprávnění uživateli "
sqlstate: 42504 SQL0562N Daná oprávnění pro databázi nelze udělit autorizační identifikaci PUBLIC. Vysvětlení: Příkaz GRANT se pokusil udělit oprávnění pro databázi vyhrazené autorizační identifikaci PUBLIC. Oprávnění DBADM nemůže být uděleno uživateli PUBLIC. Příkaz nelze zpracovat. Reakce uživatele: Odvozená funkce není podporována. sqlcode: -562 sqlstate: 42508
74
Přehled zpráv, díl 2
SQL0567N ¹SQL0574N SQL0567N "
SQL0572N Balík "<jméno-balíku>" není funkční. Vysvětlení: Balík "<jméno-balíku>" je označen jako nefunkční a musí být před použitím explicitně znovu svázán. Tento balík nelze použít, protože jedna nebo více uživatelských funkcí, na nichž závisí, byla odstraněna.
¹
Začíná znaky „SYS“, „sys“, „IBM“, „ibm“, „SQL“ nebo „sql“.
Reakce uživatele: Explicitně znovu svažte uvedený balík pomocí příkazu REBIND nebo BIND.
¹
Obsahuje jiné znaky než a až z, A až Z, 0 až 9 a tři speciální znaky (#,@,$).
sqlcode: -572
¹
Používá oddělovače a obsahuje malá písmena.
sqlstate: 51028
¹
Zní GUESTS, ADMINS, USERS nebo LOCAL.
¹
Zní PUBLIC a předchází jí klíčové slovo USER nebo GROUP v příkazu GRANT nebo REVOKE.
Příkaz nelze zpracovat. Reakce uživatele: Opravte neplatnou autorizační identifikaci. sqlcode: -567 sqlstate: 42602 SQL0569N Příkaz GRANT/REVOKE neproběhl úspěšně, protože "<jméno-autorizace>" může určovat v systému uživatele i skupinu. Vysvětlení: Příkaz GRANT nebo REVOKE použil jméno autorizace, které v jmenném prostoru pro zabezpečení může určovat jak uživatele, tak skupinu, a v příkazu nebylo explicitně použito klíčové slovo USER nebo GROUP. Příkaz je proto nejednoznačný. Nezapomeňte, že při používání zabezpečení DCE jsou klíčová slova USER nebo GROUP vždy vyžadována. Reakce uživatele: Změňte příkaz a použijte explicitně klíčové slovo USER nebo GROUP, abyste jednoznačně určili požadovanou autorizační identifikaci. sqlcode: -569 sqlstate: 56092 SQL0570W Pro objekt "<jméno-objektu>" typu "
SQL0573N Sloupcový seznam uvedený v referenční klauzuli podmínky "<jméno>" neurčuje podmínku jedinečnosti nadřazené tabulky "<jméno-tabulky>". Vysvětlení: V referenční klauzuli podmínky "<jméno>" byl určen seznam jmen sloupců, který neodpovídá jménům sloupců primárního klíče nebo některého jedinečného klíče odkazované tabulky "<jméno-tabulky>". Jméno "<jméno>" je jméno podmínky, jestliže byla určena. Jestliže jméno podmínky nebylo zadáno, obsahuje parametr "<jméno>" jméno prvního sloupce v sloupcovém seznamu klauzule FOREIGN KEY, následované třemi tečkami. Příkaz nelze zpracovat. Reakce uživatele: Opravte sloupcový seznam v referenční klauzuli nebo přidejte do odkazované tabulky podmínku jedinečnosti. sqlcode: -573 sqlstate: 42890 SQL0574N Hodnota DEFAULT nebo atribut IDENTITY nejsou pro sloupec "<jméno-sloupce>" v tabulce "<jméno-tabulky>" platné. Kód příčiny: "
Hodnotu nelze do sloupce přiřadit, protože konstanta nevyhovuje formátu konstanty daného typu dat, hodnota má nesprávnou délku nebo přesnost, nebo funkce vrací nesprávný datový typ.
2
Je zadána konstanta s pohyblivou řádovou čárkou a datový typ ve sloupci není s pohyblivou řádovou čárkou.
3
Je zadána desetinná konstanta a při přiřazení do sloupce by byly nenulové číslice oříznuty.
4
Hodnota je delší než 254 bajtů včetně uvozovek řetězců, úvodních znaků (například X pro hexadecimální konstanty), úplných jmen funkcí a závorek. Nevýznamné mezery v hodnotě budou ignorovány. V prostředí s nestejnými kódovými stránkami může hodnota přesáhnout 254 bajtů v důsledku expanze řetězce v kódové stránce databáze.
Všechna platná požadovaná oprávnění byla udělena. Reakce uživatele: Získejte potřebná práva a operaci zopakujte. sqlcode: +570 sqlstate: 01007
Kapitola 2. Zprávy SQL
75
SQL0575N ¹SQL0579N 5
Je zadán speciální registr USER a atribut délky datového typu znakový řetězec je menší než 8.
6
Je zadán speciální registr datum/čas (CURRENT DATE, CURRENT TIME nebo CURRENT TIMESTAMP) a neodpovídá datovému typu ve sloupci.
7
Byla zadána funkce, která není podporována. Zadaná funkce musí být funkce přetypování generovaná systémem nebo některá z vestavěných funkcí BLOB, DATE, TIME nebo TIMESTAMP.
8
Argument funkce datum/čas nebyla konstanta znakový řetězec nebo odpovídající speciální registr datum/čas.
9
Byla zadána funkce přetypování generovaná systémem a sloupec není uživatelsky definovaným odlišeným typem.
10
<0
Pro volbu START WITH nebo INCREMENT BY sloupce typu IDENTITY byla zadána hodnota s nenulovým počtem desetinných míst. Všechny kódy příčiny nižší než nula jsou kódy jazyka SQL. Chybu v zadání hodnoty DEFAULT můžete určit po vyhledání chybové zprávy, která odpovídá příslušnému kódu jazyka SQL.
Příkaz nelze zpracovat. Reakce uživatele: Opravte hodnotu DEFAULT nebo hodnotu atributu IDENTITY podle vráceného kódu příčiny. sqlcode: -574 sqlstate: 42894 SQL0575N Souhrnnou tabulku nebo pohled "<jméno>" nelze použít, protože je označen jako nefunkční. Vysvětlení: Souhrnná tabulka nebo pohled "<jméno-pohledu>" byl označen jako nefunkční, protože byla odstraněna tabulka, pohled, alias nebo oprávnění, na kterých závisí. Pohled mohou použít pouze následující příkazy jazyka SQL: ¹
COMMENT ON
¹
DROP VIEW nebo DROP TABLE
¹
CREATE ALIAS
¹
CREATE VIEW nebo CREATE TABLE
Příkaz nelze zpracovat. Reakce uživatele: Pokud "<jméno>" určuje pohled, vytvořte pohled znovu zadáním příkazu CREATE VIEW se stejnou definicí jako v nefunkčním pohledu. Pokud "<jméno>" určuje souhrnnou tabulku, vytvořte souhrnnou tabulku znovu zadáním příkazu CREATE TABLE se stejnou definicí jako v nefunkční souhrnné tabulce. sqlcode: -575 sqlstate: 51024
76
Přehled zpráv, díl 2
SQL0576N Alias "<jméno-1>" nelze pro jméno "<jméno-2>" vytvořit, protože výsledkem by mohl být opakující se řetězec aliasů. Vysvětlení: Definice alias "<jméno-1>" pro "<jméno-2>" by mohla mít za následek vytvoření opakujícího se řetězce aliasů, který by nikdy nemohl být vyřešen. Příkladem neřešitelného řetězce opakujících se aliasů by byla situace, kdy „alias A odkazuje na alias B, který odkazuje na alias A“. Příkaz nelze zpracovat. Reakce uživatele: Změňte definici alias pro "<jméno-1>" nebo opravte definici některého jiného alias v řetězci aliasů, abyste zabránili vytvoření opakujících se řetězců. sqlcode: -576 sqlstate: 42916 SQL0577N Uživatelská funkce nebo procedura "<jméno-funkce>" (specifické jméno "<specifické-jméno>") se pokusila modifikovat data, ale nebyla definována jako MODIFIES SQL DATA. Vysvětlení: Program použitý k implementaci těla uživatelské funkce nebo procedury nemá povoleno provádění změn dat SQL. Reakce uživatele: Odstraňte všechny příkazy SQL, které provádějí změny dat, a program znovu zkompilujte. U uložených procedur prověřte povolenou úroveň příkazů SQL uvedenou v příkazu CREATE PROCEDURE. sqlcode: -577 sqlstate: 38002 sqlstate: 42985 SQL0579N Uživatelská funkce nebo procedura "<jméno-funkce>" (specifické jméno "<specifické-jméno>") se pokusila číst data, ale nebyla definována jako READ SQL DATA ani MODIFIES SQL DATA. Vysvětlení: Program použitý k implementaci těla uživatelské funkce nebo procedury nemá povoleno čtení dat SQL. Reakce uživatele: Odstraňte všechny příkazy SQL, které provádějí čtení dat, a program znovu zkompilujte. U uložených procedur prověřte povolenou úroveň příkazů SQL uvedenou v příkazu CREATE PROCEDURE. sqlcode: -579 sqlstate: 38004 sqlstate: 42985
SQL0580N ¹SQL0583N SQL0580N Výsledné výrazy příkazu CASE nemohou všechny nabývat hodnoty Null. Vysvětlení: V příkazu existuje výraz CASE, jehož všechny výsledné výrazy (výrazy následující za klíčovými slovy THEN a ELSE) jsou označeny klíčovým slovem NULL. Příkaz nelze zpracovat. Reakce uživatele: Změňte výraz CASE, aby obsahoval alespoň jeden výsledný výraz odlišný od klíčového slova NULL.
Výrazy CASE tohoto typu nejsou podporovány. Výraz CASE je pravděpodobně součástí funkce definované v jazyce SQL. Příkaz nelze zpracovat. Reakce uživatele: Odstraňte z výrazu CASE kvantifikovaný predikát, predikát IN nebo predikát EXISTS. Je-li výraz CASE součástí funkce, bude pravděpodobně nutné napsat dotaz bez funkce, která chybu způsobila. sqlcode: -582 sqlstate: 42625
sqlcode: -580 sqlstate: 42625 SQL0581N Datové typy výsledných výrazů ve výrazu CASE nejsou kompatibilní. Vysvětlení: V příkazu existuje výraz CASE, jehož výsledné výrazy (výrazy následující za klíčovými slovy THEN a ELSE) nejsou kompatibilní. Datový typ výrazu CASE je určen „Pravidly výsledných datových typů“ ve výsledných výrazech. Datové typy výsledných výrazů mohou být nekompatibilní z některého z následujících důvodů: ¹ ¹ ¹ ¹ ¹ ¹
všechny nemají znakové datové typy všechny nemají numerické datové typy všechny nemají datové typy datum všechny nemají datové typy čas všechny nemají datové typy časová značka všechny nejsou stejného uživatelského odlišeného datového typu
SQL0583N Použití rutiny "<jméno-rutiny>" není platné, protože není deterministická nebo má externí akci. Vysvětlení: Rutina (funkce nebo metoda) "<jméno-rutiny>" je definována jako nedeterministická rutina nebo rutina s externí akcí. Tento typ rutiny není podporován v kontextu, v jakém byla rutina použita. Uvedené funkce jsou neplatné v těchto kontextech: ¹
jako první operand predikátu BETWEEN
¹
ve výrazu před prvním klíčovým slovem WHEN v jednoduchém výrazu CASE
¹
ve výrazu klauzule GROUP BY
¹
ve výrazu klauzule ORDER BY (pouze externí akce)
¹
v klauzuli FILTER specifikace uživatelského predikátu nebo definice rozšíření indexu.
Příkaz nelze zpracovat.
Reakce uživatele: Opravte výsledně výrazy, aby byly kompatibilní.
Reakce uživatele: Jestliže nebyla nedeterministická rutina nebo rutina s externí akcí použita záměrně, nahraête ji rutinou bez těchto charakteristik. Je-li chování přiřazené nedeterministické rutině nebo rutině s externí akcí záměrné, použijte alternativní podobu příkazu, která učiní tento záměr explicitním.
sqlcode: -581
¹
Místo predikátu BETWEEN použijte odpovídající příkaz, používající ekvivalentní kombinaci porovnávacích predikátů ('a>=b and a<=c' místo 'a between b and c').
¹
Místo jednoduché klauzule WHEN použijte odpovídající vyhledávací klauzuli WHEN, kde bude rutina určena v každé vyhledávací podmínce.
¹
Odstraňte nedeterministickou rutinu nebo rutinu s externí akcí z klauzule GROUP BY. Jestliže požadujete seskupení ve sloupci výsledků založeném na nedeterministické rutině nebo na rutině s externí akcí, použijte vnořený tabulkový výraz nebo obecný tabulkový výraz, který nejprve poskytne výslednou tabulku s výrazem jako sloupec výsledků.
¹
Odstraňte rutinu s externí akcí z klauzule ORDER BY. Jestliže je sloupec částí výsledné sady dotazu, změňte výraz v klauzuli ORDER BY na řadící klíč ve formě jednoduchého celého čísla nebo prostého jména sloupce.
¹
Odstraňte nedeterministickou rutinu nebo rutinu s externí akcí z klauzule FILTER.
Příkaz nelze zpracovat.
sqlstate: 42804 SQL0582N Výraz CASE v klauzuli VALUES, v predikátu IN, v klauzuli GROUP BY nebo v klauzuli ORDER BY nemůže obsahovat kvantifikovaný predikát, predikát IN používající plný výběr ani predikát EXISTS. Vysvětlení: Podmínka hledání výrazu CASE je: ¹ ¹ ¹
kvantifikovaný predikát (používající výrazy SOME, ANY nebo ALL), predikát IN používající plný výběr nebo predikát EXISTS
a výraz CASE je částí: ¹ ¹ ¹ ¹
klauzule VALUES predikátu IN klauzule GROUP BY nebo klauzule ORDER BY.
sqlcode: -583 sqlstate: 42845 Kapitola 2. Zprávy SQL
77
SQL0584N ¹SQL0598W SQL0584N Neplatné použití hodnoty NULL nebo DEFAULT. Vysvětlení: Hodnota DEFAULT může být použita pouze v klauzuli VALUES, která je částí příkazu INSERT. Klauzule VALUES, která není částí příkazu INSERT, musí mít v každém sloupci alespoň v jednom řádku jinou hodnotu než NULL.
Reakce uživatele: Odstraňte jména schémat a zmenšete tak celkovou délku, abyste se vešli do maximální délky 254 znaků. Jestliže jsou nutná všechna jména schémat, bude zřejmě nutné vytvořit uživatelské funkce, aby bylo v registru CURRENT FUNCTION PATH zapotřebí méně jmen schémat. sqlcode: -586 sqlstate: 42907
Jestliže je hodnota DEFAULT použita jako jméno sloupce v klauzuli WHERE nebo HAVING, musí být zapsána velkými písmeny a uzavřena do uvozovek.
SQL0590N Jméno "<jméno>" zadané v proceduře "<procedura>" není jedinečné.
Pro uživatele federovaného systému: Hodnotu DEFAULT nelze použít v klauzuli VALUES příkazu INSERT, kde objekt je přezdívka.
Vysvětlení: Jméno "<jméno>" je specifikováno jako parametr, proměnná SQL, kurzor, návěští nebo podmínka v proceduře "<procedura>". Toto jméno není jedinečné.
Reakce uživatele: Nahraête hodnotu v klauzuli VALUES jinou hodnotou, než je NULL nebo DEFAULT. Je-li hodnota DEFAULT použita jako jméno sloupce, zapište ji velkými písmeny a uzavřete ji do uvozovek.
Reakce uživatele: Změňte jméno tak, aby bylo jedinečné. sqlcode: -590 sqlstate: 42734
sqlcode: -584 sqlstate: 42608 SQL0585N Jméno schématu "<jméno-schématu>" se v cestě pro funkce nemůže vyskytnout vícekrát. Vysvětlení: Cesta pro funkce obsahuje "<jméno-schématu>" více než jednou. V cestě pro funkce se může každé jméno schématu vyskytnout pouze jednou. Příkaz nelze zpracovat. Reakce uživatele: Odstraňte z cesty pro funkce duplicitní výskyty jména schématu "<jméno-schématu>".
SQL0595W Úroveň oddělení "<požadovaná-úroveň>" byla zvýšena na "
sqlcode: -585 sqlstate: 42732
SQL0598W Existující klíč "<jméno>" se používá jako index pro primární nebo jedinečný klíč.
SQL0586N Celková délka speciálního registru CURRENT FUNCTION PATH nesmí překročit 254 znaků.
Vysvětlení: Pro operaci ALTER TABLE byl vyžadován index, který definuje primární nebo jedinečný klíč a uvedený index odpovídá požadovanému indexu.
Vysvětlení: Speciální registr CURRENT FUNCTION PATH je definován jako VARCHAR(254). Obsah řetězce zahrnuje každé jméno schématu, uzavřené do uvozovek a oddělené od dalšího schématu čárkou. Celková délka řetězce všech jmen schémat v registru CURRENT FUNCTION PATH nesmí překročit 254 znaků. Příkazem SET CURRENT FUNCTION PATH nebo volbou FUNCPATH v příkazu PREP nebo BIND, který způsobil tuto zprávu, by byl uvedený limit překročen.
Při tvorbě indexu primárního nebo jedinečného klíče popis indexu odpovídá, jestliže označuje stejnou sadu sloupců (v libovolném pořadí) jako primární nebo jedinečný klíč bez ohledu na vzestupné nebo sestupné řazení, a jestliže je určen jako jedinečný.
Příkaz nelze zpracovat.
Příkaz byl úspěšně zpracován. Reakce uživatele: Není vyžadována žádná akce. sqlcode: +598 sqlstate: 01550
78
Přehled zpráv, díl 2
SQL0599W ¹SQL0599W SQL0599W Porovnávací funkce nejsou vytvořeny pro odlišený typ založený na datovém typu pro rozsáhlé objekty. Vysvětlení: Porovnávací funkce nejsou vytvořeny pro odlišený typ založený na datovém typu dlouhý řetězec (BLOB, CLOB, DBCLOB, LONG VARCHAR nebo LONG VARGRAPHIC), protože pro tyto vestavěné datové typy nejsou k dispozici odpovídající funkce.
Tato zpráva je varováním. Příkaz byl úspěšně zpracován. Reakce uživatele: Není vyžadována žádná akce. sqlcode: +599 sqlstate: 01596
SQL0600 – SQL0699 SQL0600N Rutinu "<jméno-rutiny>" nelze generovat, protože má duplicitní signaturu nebo protože by došlo k přepsání stávající rutiny. Vysvětlení: V průběhu operace CREATE nebo ALTER nebylo možné vytvořit systémově generovanou přetypovávací funkci, metodu neupravující atributy, metodu upravující atributy nebo funkci konstruktoru, protože ve schématu již existuje jiná funkce nebo metoda se stejným jménem a signaturou nebo protože by tato metoda či funkce potlačila existující metodu. Reakce uživatele: Pro uživatelský typ, atribut nebo přetypovávací funkci, která konflikt způsobuje, zvolte jiné jméno, nebo odstraňte funkci či metodu, jejíž jméno je shodné s funkcí či metodou, kterou nelze vygenerovat. sqlcode: -600 sqlstate: 42710 SQL0601N Jméno objektu, který se má vytvořit, je stejné jako existující jméno "<jméno-objektu>" typu "
Reakce uživatele: Buê odstraňte existující objekt, nebo zvolte pro nový objekt jiné jméno. Pro uživatele federovaného systému: Jde-li o příkaz CREATE FUNCTION MAPPING nebo CREATE TYPE MAPPING, má uživatel také možnost nezadat jméno mapování typů a systém pro toto mapování automaticky vygeneruje jedinečné jméno. sqlcode: -601 sqlstate: 42710 SQL0602N Příkaz CREATE INDEX nebo CREATE INDEX EXTENSION určuje příliš mnoho sloupců (maximální počet je 16). Vysvětlení: Počet sloupců indexu generovaného příkazem CREATE INDEX překračuje maximální počet pro správce databází 16. Jestliže je v typované tabulce definován index, přináší to další zatížení a maximální počet určených sloupců se snižuje na 15. V příkazu CREATE INDEX EXTENSION funkce GENERATE KEY vrací počet sloupců, který překročil maximální počet sloupců povolených v indexu (16). Pro uživatele federovaného systému: Omezení pro jiné zdroje dat jsou odlišná. Je možné, že tato omezení byla překročena. Problém může být zjištěn na federovaném serveru nebo ve zdroji dat. Příkaz nelze zpracovat. Reakce uživatele: Změňte definici indexu, aby vyhovovala omezení počtu sloupců na 16. Pro příkaz CREATE INDEX EXTENSION zadejte jinou funkci GENERATE KEY nebo funkci předefinujte tak, aby vracela méně sloupců. Pro uživatele federovaného systému: Změňte definici indexu, aby vyhovovala omezení počtu sloupců pro zdroj dat. sqlcode: -602 sqlstate: 54008
Kapitola 2. Zprávy SQL
79
SQL0603N ¹SQL0606N SQL0603N Nelze vytvořit jedinečný index, protože tabulka obsahuje řádky, které jsou vzhledem k hodnotám určených sloupců duplicitní. Vysvětlení: Index definovaný v příkazu CREATE INDEX nebylo možno vytvořit jako jedinečný, protože určena tabulka obsahuje v daném sloupci řádky s duplicitními hodnotami.
¹
Lokální délka/přesnost je nastavena na 0 nebo na zápornou hodnotu.
¹
Atribut délka/přesnost je určen pro datový typ jako datum, čas, časová značka nebo float či integer.
¹
Atribut počet desetinných míst je určen pro datový typ jako znak, datum, čas, časová značka nebo float či integer.
¹
Klauzule FOR BIT DATA je zadána pro neznakový typ.
Pro uživatele federovaného systému: Tato situace může být detekována také zdrojem dat.
¹
Vzdálená přesnost je nastavena na hodnotu 0 pro jiné vzdálené typy než Informix datetime.
Příkaz nelze zpracovat. Určený index nebyl vytvořen.
¹
Reakce uživatele: Prověřte data a určete, zda jsou povoleny duplicitní údaje. Jako alternativu zvažte vytvoření nejedinečného indexu.
V mapování typů pro typ Informix datetime se používá neplatný kvalifikátor pole.
¹
V rozmezí pro přesnost/počet desetinných míst je koncová hodnota menší než počáteční.
sqlcode: -603
Příkaz nelze zpracovat.
sqlstate: 23515
Reakce uživatele: Opravte syntaxi a zadejte příkaz znovu. sqlcode: -604
SQL0604N Atribut délky, přesnosti nebo počtu desetinných míst pro sloupec, odlišený typ, strukturovaný typ, atribut strukturovaného typu, funkci nebo mapování typu "<položka-dat>" není platný. Vysvětlení: Došlo k chybě určení datového typu v příkazu CREATE nebo ALTER nebo v klauzuli CAST. Zřejmě byla určena neplatná délka, přesnost nebo počet desetinných míst nebo mohou být samotné údaje nesprávné nebo v tomto kontextu nepovolené. Místo chyby určuje parametr "<položka-dat>" takto: ¹
v příkazech CREATE nebo ALTER TABLE obsahuje "<položka-dat>" jméno atributu nebo datový typ, ve kterém je chyba. Je-li datovým typem sloupce strukturovaný typ, musí být explicitní či implicitní hodnota INLINE LENGTH nejméně 292 a nesmí překročit hodnotu 32677.
¹
v příkazu CREATE FUNCTION je "<položka-dat>" prvek, označující okruh problémů v příkazu. Může to být například „PARAMETER 2“, „RETURNS“ nebo „CAST FROM“. V některých případech může jít také o datový typ, ve kterém je chyba.
¹
v příkazu CREATE DISTINCT TYPE obsahuje "<položka-dat>" jméno definovaného typu nebo zdrojového datového typu, ve kterém je chyba.
¹
v příkazu CREATE nebo ALTER TYPE vrací "<položka-dat>" typ atributu obsahující chybu nebo jméno strukturovaného typu s neplatnou hodnotou INLINE LENGTH. Hodnota INLINE LENGTH nesmí být menší než 292 a velikost vrácená funkcí konstruktoru pro strukturovaný typ.
¹
v klauzuli CAST( výraz AS typ-dat ) má "<položka-dat>" hodnotu „CAST“ nebo určuje typ dat, ve kterém je chyba.
Pro uživatele federovaného systému: Jde-li o příkaz CREATE TYPE MAPPING, byl proveden pokus o vytvoření mapování typů, kde není platný atribut typu pro lokální nebo vzdálený datový typ. Mezi možné příčiny patří:
80
Přehled zpráv, díl 2
sqlstate: 42611 SQL0605W Index nebyl vytvořen, protože již existuje index "<jméno-indexu>" s požadovaným popisem. Vysvětlení: Operace CREATE INDEX se pokusila vytvořit nový index a uvedený index odpovídá požadovanému indexu. V příkazu CREATE INDEX dva popisy indexů odpovídají, jestliže označují stejné sloupce ve stejném pořadí se stejným určením vzestupného nebo sestupného řazení a oba jsou označeny jako jedinečné nebo nový index je označen jako nejedinečný. Kromě toho dva popisy indexů odpovídají v případě, kdy označují stejné sloupce ve stejném pořadí se stejným nebo opačným určením vzestupného nebo sestupného řazení a kdy alespoň jeden popis obsahuje parametr ALLOW REVERSE SCANS. Nový index nebyl vytvořen. Reakce uživatele: Není vyžadována žádná akce, pokud ovšem existující index "<jméno-indexu>" již nepřestal vyhovovat požadavkům. Například existující index "<jméno>" není vhodným indexem, pokud neumožňuje opačné procházení a požadovaný index je umožňuje (nebo naopak). V tomto případě je třeba index "<jméno>" před vytvořením požadovaného indexu odstranit. sqlcode: +605 sqlstate: 01550 SQL0606N Příkaz COMMENT ON nebo LABEL ON selhal, neboÝ zadanou tabulku nebo sloupec nevlastní "
SQL0607N ¹SQL0613N Reakce uživatele: Opravte příkaz. Operaci zopakujte.
¹
Příkaz ALTER TABLE nemůže do tabulky přidat sloupec, jehož jméno už existuje nebo je stejné jako jméno jiného přidávaného sloupce. Mimoto je v příkazu ALTER TABLE možné odkazovat na jméno sloupce pouze v jedné klauzuli ADD nebo ALTER COLUMN.
¹
Příkaz CREATE INDEX nemůže mít určeno jméno sloupce jako součást indexu více než jednou.
¹
Příkaz CREATE TRIGGER nemůže mít určeno jméno sloupce více než jednou v seznamu sloupců, které aktivují spouštěč aktualizace.
¹
Příkazy CREATE TABLE OF nemohou mít definováno stejné jméno pro sloupec REF IS a nějaký atribut strukturovaného typu.
¹
Příkazy CREATE TYPE nemohou mít definováno stejné jméno pro dva atributy. Jména atributů musejí být v rámci typu a všech nadtypů jedinečná.
¹
Příkazy ALTER TYPE nemohou do strukturovaného typu přidat atribut pod jménem, které již v typu nebo v nějakém jeho podtypu existuje nebo které se shoduje se jménem jiného přidávaného atributu. Jméno atributu se také nesmí v žádné tabulce vytvořené ze strukturovaného typu shodovat se sloupcem REF IS. Mimoto je v příkazu ALTER TYPE možné odkazovat na jméno atributu pouze v jedné klauzuli ADD nebo DROP ATTRIBUTE.
¹
Příkazy CREATE FUNCTION nemohou mít definováno stejné jméno pro dva parametry. Jméno použité v klauzuli EXPRESSION AS nemůže být stejné jako jméno parametru. Příkazy CREATE INDEX EXTENSION nemohou mít definováno stejné jméno pro dva parametry.
sqlcode: -606 sqlstate: 42505 SQL0607N Operace "
DROP nebo ALTER pro objekt vlastněný systémem, například tabulku systémového katalogu, vestavěnou funkci nebo vestavěný datový typ.
¹
COMMENT ON pro systémem vlastněnou vestavěnou funkci.
¹
INSERT nebo DELETE pro tabulku systémového katalogu.
¹
UPDATE přímo pro tabulku systémového katalogu. Některé sloupce v podmnožině tabulek systémového katalogu jsou aktualizovatelné. K operaci UPDATE, týkající se těchto tabulek katalogu, použijte aktualizovatelné pohledy ve schématu SYSSTAT. Popis aktualizovatelných pohledů (pohledů SYSSTAT) najdete v příručce SQL Reference.
¹
CREATE nebo DROP pro index v systémové tabulce.
¹
CREATE pro spouštěč v systémové tabulce.
¹
V klauzuli FROM příkazu SELECT, obsahujícího klauzuli FOR UPDATE, byla zjištěna neaktualizovatelná systémová tabulka. Seznam aktualizovatelných systémových katalogů najdete v příručce SQL Reference.
¹
¹
DROP nebo ALTER pro systémový tabulkový prostor.
Příkaz nelze zpracovat.
¹
DROP nebo ALTER pro systémovou skupinu uzlů.
¹
REDISTRIBUTE pro skupiny uzlů IBMCATGROUP nebo IBMTEMPGROUP.
Reakce uživatele: Podle typu příkazu určete jedinečné jméno.
Příkaz nelze zpracovat. Reakce uživatele: Nepokoušejte se upravit jakékoli systémové objekty s výjimkou těch sloupců tabulek systémového katalogu, které jsou aktualizovatelné prostřednictvím aktualizovatelných pohledů SYSSTAT. Další informace najdete v příručce SQL Reference. sqlcode: -607 sqlstate: 42832 SQL0612N Jméno "<jméno>" je duplicitní jméno. Vysvětlení: V zadaném příkazu se objevuje stejné jméno více než jednou tam, kde nejsou povoleny duplicity. Umístění jmen závisí na typu příkazu. ¹
Příkazy CREATE TABLE nemohou mít definované stejné jméno sloupce pro dva sloupce.
¹
Příkazy CREATE VIEW nebo definice běžných tabulkových výrazů nemohou mít stejné jméno sloupce v seznamu jmen sloupců. Jestliže není seznam jmen sloupců zadán, musí být jména sloupců ve vybraném seznamu v pohledu jedinečná.
sqlcode: -612 sqlstate: 42711 SQL0613N Primární nebo jedinečný klíč daný jménem "<jméno-klíče>" je příliš dlouhý nebo označuje příliš mnoho sloupců. Vysvětlení: Součet vnitřních délek sloupců v klauzuli PRIMARY KEY nebo v klauzuli UNIQUE, označených parametrem "<jméno-klíče>", přesahuje 1024 bajtů nebo počet sloupců přesahuje maximum 16. Při definici primárního nebo jedinečného klíče rovněž nemůže být použit sloupec LONG VARCHAR. Jestliže je v typované tabulce definován primární klíč nebo podmínka jedinečnosti, snižuje se kvůli dalšímu indexovému zatížení maximální počet určených sloupců na 15 a omezuje se délku na 1020. "<jméno-klíče>" je jméno podmínky, jestliže je určeno, nebo primární klíč nebo podmínka jedinečnosti. Jestliže nebylo jméno podmínky určeno, je "<jméno-klíče>" jméno prvního sloupce určeného v klauzuli primárního klíče nebo podmínky jedinečnosti, následované třemi tečkami. Příkaz nelze zpracovat.
Kapitola 2. Zprávy SQL
81
SQL0614N ¹SQL0623N Reakce uživatele: Upravte definici primárního nebo jedinečného klíče, odstraňte jeden nebo více sloupců, aby vyhovovala omezení počtu sloupců na 16 a omezení délky klíče. sqlcode: -613 sqlstate: 54008 SQL0614N Index nebo rozšíření indexu "<jméno-indexu>" nelze vytvořit nebo změnit, protože celková délka zadaných sloupců je příliš velká. Vysvětlení: Index nebylo možno vytvořit nebo změnit, protože by součet interních délek sloupců překročil 1024. Index rovněž není možné vytvořit pomocí sloupce LONG VARCHAR, LONG VARGRAPHIC nebo LOB. Jestliže je v typované tabulce definován index, přináší to další omezení indexu a maximální délka se snižuje o 4 bajty. Index lze změnit příkazem ALTER TABLE, který mění datový typ jednoho nebo více sloupců. Rozšíření indexu nemohlo být vytvořeno, neboÝ součet sloupců vrácených funkcí GENERATE KEY překročil 1024.
SQL0620N Příkaz CREATE TABLE selhal, neboÝ uživatel "
V databázi DB2 for VM nebyly nalezeny žádné soukromé databázové prostory uživatele "