You can bind or define a Java string against anNCHAR
column without explicitly specifying the form of use argument. This implies the following:
-
If you do not specify the argument in the
setString()
method,then JDBC assumes that the bind or define variable is for the sqlCHAR
column. As a result,it tries to convert them to the database character set. When the data gets to the database,the database implicitly converts the data in the database character set to the national character set. During this conversion,data can be lost when the database character set is a subset of the national character set. Because the national character set is either UTF8 or AL16UTF16,data loss would happen if the database character set is not UTF8 or AL32UTF8. -
Because implicit conversion from sql
CHAR
to sqlNCHAR
data types happens in the database,database performance is degraded.