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
Statistics::Basic::Covariance(3pm)			User Contributed Perl Documentation			Statistics::Basic::Covariance(3pm)

NAME
Statistics::Basic::Covariance - find the covariance between two lists SYNOPSIS
Invoke it this way: my $covariance = covariance( [1,2,3], [1,2,3] ); Or this way: my $v1 = vector(1,2,3); my $v2 = vector(1,2,3); my $cov = cov($v1,$v2); And then either query the values or print them like so: print "The covariance between $v1 and $v2: $covariance "; my $cq = $cov->query; my $c0 = 0+$cov; Create a 20 point "moving" covariance like so: use Statistics::Basic qw(:all nofill); my $sth = $dbh->prepare("select col1,col2 from data where something"); my $len = 20; my $cov = cov(); $cov->set_size($len); $sth->execute or die $dbh->errstr; $sth->bind_columns( my ($lhs, $rhs) ) or die $dbh->errstr; my $count = $len; while( $sth->fetch ) { $cov->insert( $lhs, $rhs ); if( defined( my $c = $cov->query ) ) { print "Covariance: $c "; } # This would also work: # print "Covariance: $cov " if $cov->query_filled; } METHODS
This list of methods skips the methods inherited from Statistics::Basic::_TwoVectorBase (things like query(), insert(), and ginsert()). new() Create a new Statistics::Basic::Covariance object. This function takes two arguments -- which can either be arrayrefs or Statistics::Basic::Vector objects. This function is called when the covariance() shortcut-function is called. query_vector1() Return the Statistics::Basic::Vector for the first vector. query_vector2() Return the Statistics::Basic::Vector object for the second vector. query_mean1() Returns the Statistics::Basic::Mean object for the first vector. query_mean2() Returns the Statistics::Basic::Mean object for the second vector. OVERLOADS
This object is overloaded. It tries to return an appropriate string for the calculation or the value of the computation in numeric context. In boolean context, this object is always true (even when empty). AUTHOR
Paul Miller "<jettero@cpan.org>" COPYRIGHT
Copyright 2012 Paul Miller -- Licensed under the LGPL SEE ALSO
perl(1), Statistics::Basic, Statistics::Basic::_TwoVectorBase, Statistics::Basic::Vector perl v5.14.2 2012-01-23 Statistics::Basic::Covariance(3pm)
All times are GMT -4. The time now is 06:12 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy