in reply to Date/Time insertion problem with Perl/Oracle
You can set the format of a datetime either in your Oracle client setup, for the session (after you connected to Oracle), or in the SQL statement (with the TO_DATE function).
This is how to set the session format:
alter session set NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI:SS'; alter session set NLS_DATE_FORMAT = 'RRRR-MM-DD'; alter session set NLS_TIME_FORMAT = 'HH24:MI:SS';
You shouldn't trust the client default, it is bound to be wrong somewhere, some time. You could make it easy on yourself and always set a sane default after connecting. Like this:
my $dbh = ... connect ...; $dbh->do("alter session set NLS_TIMESTAMP_FORMAT = 'RRRR-MM-DD HH24:MI +:SS'"); ... etc ...
Google for "oracle nls" for more info about this. NLS stands for National Language Support and is something you should read up on before it bites you again (character sets, non-ASCII chars and such).
/J
|
|---|