setDouble On INSERT Corrupts Data In NUMBER Column Using Oracle10g JDBC Driver
(Doc ID 313373.1)
Last updated on MAY 15, 2023
Applies to:
JDBC - Version 10.1.0.2 to 10.1.0.5 [Release 10.1]Information in this document applies to any platform.
This problem can occur on any platform.
Symptoms
setDouble on an INSERTed NUMBER value corrupt data in Column
Subsequent SELECTs on the corrupted data will fail with ORA-7445
The stack will look like (On Solaris 8.1.7.4):
lnxadd evaabo evaopn2 kpofcr qertbFetch
On windows 8.1.7.4:
lnxadd evaabo evaopn2 kpofcr qerstRowP qertbFetch qerstFetch
On Windows 10.1.0.4:
lnxadd evaadd kpofcr qerstRowP kdstf0000101km kdsttgr qertbFetch qerstFetch
A SQL Trace will reveal the error
"An invalid number has been seen. Memory contents are"
- Fails with Oracle JDBC Driver 10.1.0.2.0
- Fails with Oracle JDBC Driver 10.1.0.3.0
- Fails with Oracle JDBC Driver 10.1.0.4.0
Work OK with Oracle JDBC Driver 9.2.0.6.0 and 8.1.7
Reproduced with testcase:
double xx = -0.0008;
ps = conn.prepareStatement("insert into sal (n) values (?)");
ps.setDouble(1, xx);
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |