Note that there are some explanatory texts on larger screens.

plurals
  1. POHow can I translate date values from Oracle to Excel using Perl's DBI?
    primarykey
    data
    text
    <p>I am having trouble with a very simple Perl process. I am basically querying an Oracle database and I want to load it into Excel. I have been able to use DBIx::Dump and it works. However, I need to be able to use a variety of Excel formatting tools. And I think <a href="http://search.cpan.org/dist/Spreadsheet::WriteExcel" rel="nofollow noreferrer">Spreadsheet::WriteExcel</a> is the best module that outputs to Excel that allows me do more formatting. </p> <p>Below is the code and the error I am getting. I basically query Oracle, fetch the data, load into an array and try to write to Excel. For some reason it is doing some kind of comparison and it does not like the data types. For example, the date is '25-OCT-08'. The SVP is 'S01'. It seems to be saying that they are not numeric. </p> <p>Error:</p> <pre><code>Argument "01-NOV-08" isn't numeric in numeric ge &lt;&gt;=&gt; at C:/Perl/site/lib/Spreadsheet/WriteExcel/Worksheet.pm line 3414. Argument "01-NOV-08" isn't numeric in pack ge &lt;&gt;=&gt; ge &lt;&gt;=&gt; at C:/Perl/site/lib/Spreadsheet/WriteExcel/Worksheet.pm line 2157. </code></pre> <p>Code:</p> <pre><code>#!/usr/bin/perl -w #Set the Perl Modules use strict; use DBI; use Spreadsheet::WriteExcel; # Connect to the oracle database my $dbh = DBI-&gt;connect( 'dbi:Oracle:xxxx', 'xxxx', 'xxxx', ) || die "Database connection not made: $DBI::errstr"; #Set up Query my $stmt = "select week_end_date, SVP, RD, DM, store, wtd_smrr_gain,QTD_SMRR_GAIN, wtd_bor_gain,QTD_BOR_GAIN, wtd_cust_gain,QTD_CUST_GAIN, wtd_CARD_CLOSED_OCT25,QTD_AVG_CARD_CL from bonus_4Q_store order by store"; #Prepare Query my $sth = $dbh-&gt;prepare($stmt); #Execute Query $sth-&gt;execute() or die $dbh-&gt;errstr; my( $week_end_date,$SVP,$RD,$DM,$store, $wtd_smrr_gain,$QTD_SMRR_GAIN, $wtd_bor_gain,$QTD_BOR_GAIN, $wtd_cust_gain,$QTD_CUST_GAIN, $wtd_CARD_CLOSED_OCT25,$QTD_AVG_CARD_CL); #binds each column to a scalar reference $sth-&gt;bind_columns(undef,\$week_end_date,\$SVP,\$RD,\$DM,\$store, \$wtd_smrr_gain,\$QTD_SMRR_GAIN, \$wtd_bor_gain,\$QTD_BOR_GAIN, \$wtd_cust_gain,\$QTD_CUST_GAIN, \$wtd_CARD_CLOSED_OCT25,\$QTD_AVG_CARD_CL,); #create a new instance my $Excelfile = "/Test_Report.xls"; my $excel = Spreadsheet::WriteExcel-&gt;new("$Excelfile"); my $worksheet = $excel-&gt;addworksheet("WOW_SHEET"); #Create array shell my @data; #Call data and Write to Excel while ( @data = $sth-&gt;fetchrow_array()){ my $week_end_date = $data[0]; my $SVP = $data[1]; my $RD = $data[2]; my $DM = $data[3]; my $store = $data[1]; my $wtd_smrr_gain = $data[2]; my $QTD_SMRR_GAIN = $data[3]; my $wtd_bor_gain = $data[4]; my $QTD_BOR_GAIN = $data[5]; my $wtd_cust_gain = $data[6]; my $QTD_CUST_GAIN = $data[7]; my $wtd_CARD_CLOSED_OCT25 = $data[8]; my $QTD_AVG_CARD_CL = $data[9]; my $row = 0; my $col = 0; foreach my $stmt (@data) { $worksheet-&gt;write($row++, @data); last; } } print "DONE \n"; $sth-&gt;finish(); $dbh-&gt;disconnect(); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload