X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FOracle%2FGeneric.pm;h=15f2a4543e0c9239673d39ded40e1addc964cbc5;hb=d2a3958e111673a0fd1a8f3a6d81700e5d351140;hp=2021056d548148926ec344a700938ba338516f8c;hpb=536bf52b5ae34d4881b0ec53e7024313c073b604;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm b/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm index 2021056..15f2a45 100644 --- a/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm +++ b/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm @@ -183,6 +183,39 @@ L. sub datetime_parser_type { return "DateTime::Format::Oracle"; } +=head2 connect_call_set_datetime_format + +Used as: + + on_connect_call => 'set_datetime_format' + +In L to set the session nls date, +and timestamp values for use with +L. As well as the necessary environment +variables for L. + +Maximum allowable precision is used. + +C is also initialized but is not currently used by +L. + +=cut + +sub connect_call_set_datetime_format { + my $self = shift; + my $dbh = $self->dbh; + + my $date_format = $ENV{NLS_DATE_FORMAT} ||= 'YYYY-MM-DD HH24:MI:SS'; + my $timestamp_format = $ENV{NLS_TIMESTAMP_FORMAT} ||= + 'YYYY-MM-DD HH24:MI:SS.FF'; + my $timestamp_tz_format = $ENV{NLS_TIMESTAMP_TZ_FORMAT} ||= + 'YYYY-MM-DD HH24:MI:SS.FF TZHTZM'; + + $dbh->do("alter session set nls_date_format = '$date_format'"); + $dbh->do("alter session set nls_timestamp_format = '$timestamp_format'"); + $dbh->do("alter session set nls_timestamp_tz_format = '$timestamp_tz_format'"); +} + sub _svp_begin { my ($self, $name) = @_;