Batch Insert Of Data Sometimes Leaves "~" (Tilde) In A Number Field Using The -d64 Parameter In The Command Line
(Doc ID 1134992.1)

Last updated on MARCH 08, 2017

Applies to:

JDBC - Version 11.1.0.7 and laterInformation in this document applies to any platform.

Symptoms

On : 11.1.0.7 version, JDBC for Java

JDBC batch loading size of 5000 results in some rows having "~" char displayed in a NUMBER field. DUMP() shows that value is corrupted ("Typ=2 Len=1: 192").
It was found that the usage of a java VM parameter causes the data corruption.
The JVM parameter is –d64.

From the Sun website:

-d32
-d64

Specifies whether the program is to be run in a 32-bit or 64-bit environment. On Solaris these correspond to the ILP32 and LP64 data models, respectively. The -d64 option may only be used on 64-bit Solaris systems.

Currently only the Java HotSpot Server VM supports 64-bit operation, and the "-server" option is implicit with the use of -d64. This is subject to change in a future release.

If neither -d32 nor -d64 is specified, the default is to run in a 32-bit environment. This is subject to change in a future release.

Our server AUSSW91 is a Sun Solaris 64-bit operating system. I suspect that the Oracle JDBC drivers have a problem when running in 64-bit mode.

Note that the Oracle database is on 64-bit Linux (OEL), but the java app server is 64-bit Solaris.