in reply to Perl DBI Loss of Date Precision

You can certainly "do" an alter session to change the nls_date_format and it sticks with the $dbh you ran it on. Here is an example but using nls_timestamp_format:
perl -e 'use DBI;$h = DBI->connect("dbi:Oracle:XE","xxx","yyy"); $s = $h->prepare("select sys_extract_utc(systimestamp) from dual"); $s->execute; DBI::dump_results($s); $h->do("alter session set nls_timestamp_format=\"YYYYMMDD HH24:MI:SS\" +"); $s = $h->prepare("select sys_extract_utc(systimestamp) from dual"); $s->execute;DBI::dump_results($s);'
produces:
"27-JUN-07 01.48.13.876853000 PM" 1 rows "20070627 13:48:13" 1 rows