|
Tja, heute habe ich wieder etwas dazugelernt. Seit kurzem kam es immer wieder mal zu dem Problem, dass ich einen "End of Communication Channel" Error bekam. Nicht immer, ab und zu mal, intermittierend. Das ganze unter Oracle 11g.
Herausgestellt hat sich dann, dass der Code mit SUBSTR schuld daran war. D.h. wenn ich einen Substr mit Minuszahlen (also von Rechts gezählt) erstelle und dann als Wert ein NULL habe, dann KANN es sein, dass das ganze kippt und die Kommunikation zusammenbricht.
Schuld war in Code gesprochen folgendes:
cast(decode(x.rowcell, 1, decode(substr(goo_ean_code,1,4), '9003', substr(goo_ean_code,-7,6), substr(goo_ean_code,-8,7))) as varchar(50)) as FLD1
Workaround dann folgendes:
cast(decode(x.rowcell, 1, decode(substr(nvl(goo_ean_code,'xxxx'),1,4), 'xxxx', 'x', '9003', substr(nvl(goo_ean_code,'xxxxxx'),-7,6), substr(nvl(goo_ean_code,'xxxxxxx'),-8,7))) as varchar(50)) as FLD1
Somit konnten auch NULL-Werte dem Statement nichts mehr ausmachen. Klar, die erste Version ist nicht sauber programmiert. Trotzdem, einen "End of Communication" Error? Huh? Na egal... |