Sponsored Content
Top Forums Shell Programming and Scripting PERL: DBI - Is it possible to get a "nicer" formatted return? Post 302924553 by chris01010 on Monday 10th of November 2014 02:07:34 PM
Old 11-10-2014
PERL: DBI - Is it possible to get a "nicer" formatted return?

Hi,

I am currently writing a perl module that will be passed queries from other scripts and use DBI to execute them on an Oracle Database. The problem I have is when it comes to the return.

I am currently getting this from my code:

Code:
FIELDA       FIELDB        FIELDC                 FIELDD               FIELDE
 
AAAAAAAA        MASTER  0       0       0       
AAAAAAAA        ABCD    0       0       0       
BBBBBBBA        DEFG    0       0       0       
BBBBBBBA        ABCDEF01        0       0       0       
CCCCCCCA        ABCDEF02        0       0       0       
CCCCCCC1        MASTER  0       0       0

Where as if I use an sql session and perform the query I get this format:

Code:
FIELDA       FIELDB   FIELDC             FIELDD             FIELDE
----------- -------- ---------------- --------------- -----------------
AAAAAAAA    MASTER                  0               0                 0
AAAAAAAA    ABCD                    0               0                 0
BBBBBBBA    DEFG                    0               0                 0
BBBBBBBA    ABCDEF01                0               0                 0
CCCCCCCA    ABCDEF02                0               0                 0
CCCCCCC1    MASTER                  0               0                 0
SBOSGBKD    AGRANT                  0               0                 0

This is my code:

Code:
#!/usr/local/bin/perl -w
use strict;
use Sys::Syslog; # for syslog
use DBI; # for databse connectivity
package UH_DBI;
sub run_query
{
##my $user = shift;
##my $password = shift;
##my $query = shift;
##my $host = shift;
##my $sid = shift;
##my $port = shift;
my @row;
my $user = "auser";
my $password = "apass";
my $query = qq (
SELECT FIELDA, FIELDB, FIELDC, FIELDD, FIELDE 
FROM ATABLE
);
my $host ="hostname";
my $sid ="TESTDB";
my $port ="9999";
 
my $data_source = "DBI:Oracle:host=$host;sid=$sid;port=$port";
my $dbh = DBI->connect($data_source, $user, $password) or die "Couldn't connect to database: " . DBI->errstr;
 
my $sth = $dbh->prepare($query)
or die "Couldn't prepare statement: " . $dbh->errstr;
$sth->execute() or die "Couldn't execute statement: " . $sth->errstr;
 
open(FH, ">output_file") or 
die "\n cannot write to the file output_file. Check the file permissions";
my $fields = join("\t", @{ $sth->{NAME_uc} });
print FH "$fields\n\n";
while (my @next_row_fields = $sth->fetchrow_array) {
foreach my $next_field (@next_row_fields) {
if (defined $next_field) {
print FH $next_field;
}
else {
print FH "NULL";
}
print FH "\t";
}
print FH "\n";
}
close FH;
$sth->finish;
$dbh->disconnect;
}
run_query();

(Please excuse the lack of indentation, I copied into wordpad and then into the browser).

Can anyone help?

Thanks

Chris
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl "system" cmd return values..

perl 5.6.1: when i try a "system" command(with if loops for $?), i get this: child exited with value 1 what is meant by this $? values and what does it meant if it returns 1?.. (0 Replies)
Discussion started by: sekar sundaram
0 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. Shell Programming and Scripting

Perl - How to print a "carriage return" to an output file?

Let's say I want to write a program that run these 4 UNIX commands and redirect output to a file. #!/usr/local/bin/perl use strict; `cd \$HOME > output.txt`; `cut -f1 inputfile.txt >> output.txt`; `hostname >> output.txt`; `ifconfig >> output.txt`; I want to print a "carriage return"... (5 Replies)
Discussion started by: teiji
5 Replies

4. Shell Programming and Scripting

perl folder list with "..", without ".".

Hi Everyone, if my folder "foldera" inside has one file. so if i do if ($df =~ /^\./) { next; } then i will get ### filea ### if i want to have ### .. filea ### means also display the parent .., how should i modify the perl ~// in my code? Thanks ---------- Post updated... (6 Replies)
Discussion started by: jimmy_y
6 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. Shell Programming and Scripting

Perl failure with "main::$fn" used only once:" in error logs

Hi all, Can anyone guess why this is happening? I am new to Perl, so please help me to fix this error: - I have a static html file which calls the cgi-perl script. HTML Code: <html> <head> <title> Hey Dude! </title> </head> <body> <form method="POST"... (3 Replies)
Discussion started by: bashily
3 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
Data::Stream::Bulk::DBI(3pm)				User Contributed Perl Documentation			      Data::Stream::Bulk::DBI(3pm)

NAME
Data::Stream::Bulk::DBI - N-at-a-time iteration of DBI statement results. VERSION
version 0.11 SYNOPSIS
use Data::Stream::Bulk::DBI; my $sth = $dbh->prepare("SELECT hate FROM sql"); # very big resultset $sth->execute; return Data::Stream::Bulk::DBI->new( sth => $sth, max_rows => $n, # how many at a time slice => [ ... ], # if you want to pass the first param to fetchall_arrayref ); DESCRIPTION
This implementation of Data::Stream::Bulk api works with DBI statement handles, using "fetchall_arrayref" in DBI. It fetches "max_rows" at a time (defaults to 500). ATTRIBUTES
sth The statement handle to call "fetchall_arrayref" on. slice Passed verbatim as the first param to "fetchall_arrayref". Should usually be "undef", provided for completetness. max_rows The second param to "fetchall_arrayref". Controls the size of each buffer. Defaults to 500. METHODS
get_more See Data::Stream::Bulk::DoneFlag. Calls "fetchall_arrayref" to get the next chunk of rows. all Calls "fetchall_arrayref" to get the raminder of the data (without specifying "max_rows"). AUTHOR
Yuval Kogman <nothingmuch@woobling.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Yuval Kogman. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-02-14 Data::Stream::Bulk::DBI(3pm)
All times are GMT -4. The time now is 05:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy