Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: NLS_DATE_FORMAT in jdbc

Re: NLS_DATE_FORMAT in jdbc

From: Laurenz Albe <invite_at_spam.to.invalid>
Date: 30 May 2007 06:54:39 GMT
Message-ID: <1180508077.234393@proxy.dienste.wien.at>


CM Wong <cmwong2_at_yahoo.com> wrote:
> I've seen many discussion on setting NLS_DATE_FORMAT. But when I tried
> to set NLS_DATE_FORMAT inside jdbc, it didn't seem to have any effect.
> Please see my codes below. Anyone has an idea?
>

[...]
> Statement stat=conn.createStatement();
>
> stat.execute("alter session set NLS_DATE_FORMAT='YYYY-DD-
> MM HH24:MI:SS'");
>
> ResultSet rs=stat.executeQuery("select trade_date from
> indx");
> while (rs.next())
> System.out.println(rs.getObject(1)); // *** new
> format not effective here ***

[...]

That's hardly surprising.
What you get with rs.getObject(1) is an instance of java.sql.Date, which then is converted to a java.lang.String using its toString() method.

And java.sql.Date.toString() certainly won't depend on a previous ALTER SESSION SQL statement.

Try to use rs.getString(1) instead and see if it makes a difference!

I'm too lazy to try if that will work (probably not), but here's what will certainly work:

Change the SQL statement to

SELECT to_char(trade_date) FROM indx

because then Oracle and not Java converts the date to a string.

Yours,
Laurenz Albe Received on Wed May 30 2007 - 01:54:39 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US