Hi Mohammad,

I don't think we can set a system property by using persistence.xml and even if 
we could, that would affect your entire app server anyways. System properties 
affect the whole JVM even if set during runtime.

The Oracle doc you mentioned [1] suggests that you can use 
oracle.jdbc.defaultNChar also as a connection property. JDBC drivers usually 
allow you to set connection properties by appending them to connection strings. 
I am not sure whether Oracle driver allows it, if it does, you could modify the 
connection string in the data source definition and you should be done. Also, 
some app servers might be able to call connProps.setProperty(..., ...) when a 
connection is taken from the pool.

I am suspecting that your problem is not specific to NCHAR but to CHAR columns 
in general. It might be that reading a CHAR column through JDBC returns its 
value right-padded with spaces to the length of the column. Is it possible that 
you try your test case with CHAR instead of NCHAR and confirm whether the 
behaviour is similar?

As for strange characters instead of spaces - I would try another version of 
the JDBC driver. For example, if your driver major version is higher than your 
database major version, I would test the driver which matches major version of 
the database.

Cheers,
Milosz

[1] 
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/nchar/readme.html


> 
> Hello
> When a field of type nchar is read by OpenJPA the lenght of read value is
> constant and equals to the lenght of the field but if the lenght of value is
> less than the lenght of field the remained are filled with space or strange
> characters and we can't even trim that string value to remove the spaces. As
> I read the Oracle readme about nchars, they stated to use setFormOfUse and
> in OpenJPA manual it is said that OpenJPA is automatically uses this method
> if it find a field of type nchar and nvarchar but still we have problem. And
> for your information, we didn't insert any international-character into such
> field. It is also said we can use  system property
> -Doracle.jdbc.defaultNChar=true but I am reluctant to set this value in App
> server. I am eager to know if we can set system property in persistence xml?
> 
> I appreciate if you share your experiences about this with me
> 
> thanks
> 
> -----
> --
> Regards
> Mohammad
> http://pixelshot.wordpress.com Pixelshot 
> -- 
> View this message in context: 
> http://n2.nabble.com/problem-with-NChar-in-Oracle-10g-tp4231056p4231056.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
> 

Reply via email to