2008. szeptember 1., hétfő
Migration InterBase 5.5 to 6.0
Problem/Question/Abstract:
A certain stored procedure caused me to get this error message:
ISC ERROR CODE: 335544321
ISC ERROR MESSAGE:
arithmetic exception, numeric overflow, or string truncation
Answer:
I found that a variable of type char(18) was assigned to another variable of type char(10). Since the data was never (?) longer than 8 characters, this worked fine up to version 5.5. Seems that IB 6.0 handles strings different. It is likely that a delcaration as VARCHAR instead of CHAR would help also. (See part 1 below)
Another necessary change was a type cast where IB 5.5 did an implicit conversion.
// part 1
declare variable v1 char(10);
declare variable v2 char(18);
..
v1 = v2; // generates the error in IB 6.0
// part 2
declare variable vchardate char(18);
declare variable vdatedate date;
vchardate = '1996-Jan-15';
vdatedate = vchardate; // generates error in IB 6.0
vdatedate = cast(vchardate as DATE);
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése