- support for \c database just like psql does
[SQL2XLS] / sql2xls.cgi
index d732214..81fa0a3 100755 (executable)
@@ -65,14 +65,19 @@ foreach my $sql_file (@sql_files) {
        my $sql = "";
        while(<SQL>) {
                chomp;
-               if (/^--(.+)/) {
+               if (/^\\c\s+(\S+)/) {
+                       warn "## connect to $1\n" if $debug;
+                       $dbh = DBI->connect('DBI:Pg:dbname=' . $1,$user,$passwd) || die $DBI::errstr;
+               } elsif (/^--(.+)/) {
                        $comment.=$1;
                } else {
-                       $sql.=$_;
+                       $sql.= ' ' . $_;
                }
        }
        close(SQL);
 
+       $sql =~ s/\s\s+/ /gs;
+
        print STDERR "sql: $sql\ncomment: $comment\n" if ($debug);
 
        my $row = 0;
@@ -105,6 +110,8 @@ foreach my $sql_file (@sql_files) {
                        my $data = $row[$col];
                        if ( $types[$col] =~ m/^date/i ) {
                                $data .= 'T' if $data =~ m/^\d\d\d\d-\d\d-\d\d$/;
+                               $data =~ s/^(\d\d\d\d-\d\d-\d\d)\s(\d\d:\S+)$/$1T$2/;
+                               warn "## $data\n";
                                $worksheet->write_date_time( $row, $col, $data, $date_format );
                        } else {
                                $worksheet->write($row, $col, _c( $data ) );