Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem DB2 SQLSTATE=42601

Mám aplikaci (ve Smalltalku), která nahrává do DB2 data z text. souboru. U mne na lokále i na našich testovacích serverech je vše OK. Bohužel u klienta v některých případech dojde k následující chybě:

[SQLSTATE=42601 - [IBM][CLI Driver][DB2/NT] SQL0104N  
Za textem "{ts '2012-01-31 00:00:00.000000' }" byl nalezen neočekávaný
prvek "','','','','','','',".  
Mezi očekávané prvky mohou patřit následující prvky: "<rvc_element>".  SQLSTATE=42601
 [Native Error=-104]]

Zkoušela jsem:
1. Nahrát k sobě přímo DB od klienta, nastavit vše stejně jako u klienta (vč.

db2set db2codepage=1250

) (DB má v konfig. parametrech uvedeno kódování UTF-8). I při zcela indentickém nastavení DB a datech v DB to u mne projde, u klienta ne :-(.

2. Pokud v souboru nahradím dvojité apostrofy ('') jen jedním apostrofem (') a uložím, soubor se nahraje bez problémů. Pouze ve dvojitých apostrofech to není - zkusila jsem si udělat malý soubor, který obsahoval 5 vět z původního souboru, všechny obsahovaly dvojité apostrofy a nahrál se bez problémů.

3. Případ, že by se text dvojitými apostrofy (které tam asi jsou omylem) příliš natáhl a nevešel se do příslušné položky v DB a došlo k jeho oříznutí a tedy ztrátě nějakého apostrofu na konci můžeme také vyloučit, jinak by mi to přece nemohlo fungovat na lokále při identické DB vč. identické délky všech položek.

4. Udělala jsem si prográmek v javě, který vstupní soubor prošel a vypsal ho do výstupního, ovšem místo písmenek vypsal jejich kódy. Žádný podezřelý kód tam není, všechno by měly být zcela regulérní znaky.

5. Stáhla jsem si od klienta k sobě na lokál soubory aplikace, abych měla i identický kód, který se provádí - taky je to u mne OK.

6. Klient má Windows Server Standard SP1 (tam to nefunguje), já na lokále Windows 7 (funguje) a na našem testovacím serveru Windows Server 2008 R2 Datacenter (taky funguje). Nastavení locale je na všech serverech čeština.

7. Žádné datumy nikde ve vstupním souboru nejsou, ta doplňuje Smalltalková aplikace sama jako akt. čas. Ovšem nahraje se prvních cca 50 % z 13,5 MB souboru bez problémů, pak teprve dojde k chybě, takže v tom bych chybu nehledala.

Netušíte, jaké nastavení DB/Windows by na to mohlo mít vliv? Bohužel u klienta není nainstalované vývojové prostředí, takže to nemohu jednoduše debugovat.

Předmět Autor Datum
Zkusit nainstalovat FixPaky? https://www-304.ibm.com/support/docview.wss?uid=sw g1IY43009
host 04.02.2012 10:42
host
Jeden případ? Nevim jak DB2, ale MSSql a Oracle podporuje alternativni kvotaci, což znamena, ze se n… poslední
AZOR 04.02.2012 10:54
AZOR

Jeden případ? Nevim jak DB2, ale MSSql a Oracle podporuje alternativni kvotaci, což znamena, ze se napise q'!ee!' a nemusi se psat dvojite uvozovky ani se starat o specialni znaky - jestli je to jednorazova akce zkusil bych klidne tento pštrosi algoritmus.

Zpět do poradny Odpovědět na původní otázku Nahoru