Posted By: Jovo () on 'CZdatabases' Title: What the hey! Date: Sat Jul 23 00:59:45 2011 Ahoj. Stala se mi takova "vtipna" vec, doufam, ze cizi nestesti vas pobavi:-) Tak jsem na ostrem prostredi pustil SQL script odladeny na testovacim - obe prostredi jsou identicka DB2v7.1 - ve kterem jsem pridaval novy nullable int sloupec: ALTER TABLE ADD COLUMN "km"... Pak na nej davam SELECT km FROM... a dostanu "invalid token". SELECT * funguje, sloupec KM vidim. Pro jistotu to zkusim oquotovat: SELECT "km" FROM... a zase "invalid token". Zkousim to horem dolem, i z aplikace a porad se mi to stavi na zadni. Po asi pul hodine prace me napadlo se pripojit pres GUI rozhrani (Control Center) a ejhle: ... prijato VARCHAR vyslal BIGINT "km" INTEGER - na ostrem prostredi mi ALTER pridal nazev sloupce i s temi uvozovkami! No nazdar... Vzhledem k tomu, ze DROP COLUMN umi az v 9+ (fakt nekecam, DB2 az do verze 9 neumi DROP COLUMN!), jediny zpusob je vylejt to, DROPnout tabulku a zase to tam nalejt. "Nastesti" verze 7 neumi ani INSERT SELECT:( a commandline utilita db2look je jiz nekolik let rozbita a GUI na ni prekvapive spoleha pri generovani DDL. Prece nebudu create script psat rucne opisovanim z obrazovky, kdyz je tam 20 sloupcu! Po dalsi hodine a pul jsem to vzdal kvuli referencni integrite - identity sloupec db2 umi jen pouze kdyz je GENERATE ALWAYS, takze i kdybych se tam pokousel nalejt spravna ID, skoncil bych s temi, co vygeneruje DB2 a budu ja prochazet rozpadle FK a uvadet je v navazanych tabulkach (nastesti jen jedna) na pravou miru? Misto vyliti ve vlastni rezii jsem se na to vykaslal, pridal jsem novy sloupec: ... prijato VARCHAR vyslal BIGINT "km" INTEGER kilometry INTEGER , prepsal persistencni vrstvu a protoze PL pracuje vzdy s vyjmenovanymi sloupci, tak to ani nevadi:-) Za 10 minut bylo vymalovano. Aleluja! Jovo. PS: prvotni napad pridat tam sloupec KM bez uvozovek jsem zavrhnul - kdovico by mi nacitani vracelo, zvlast kdyz system musi v jave pouzivat jeste TYPE3 driver