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
DBIx::Class::Storage::DBI::Oracle::WhereJoins(3)	User Contributed Perl Documentation	  DBIx::Class::Storage::DBI::Oracle::WhereJoins(3)

NAME
DBIx::Class::Storage::DBI::Oracle::WhereJoins - Oracle joins in WHERE syntax support (instead of ANSI). PURPOSE
This module is used with Oracle < 9.0 due to lack of support for standard ANSI join syntax. SYNOPSIS
DBIx::Class should automagically detect Oracle and use this module with no work from you. DESCRIPTION
This class implements Oracle's WhereJoin support. Instead of: SELECT x FROM y JOIN z ON y.id = z.id It will write: SELECT x FROM y, z WHERE y.id = z.id It should properly support left joins, and right joins. Full outer joins are not possible due to the fact that Oracle requires the entire query be written to union the results of a left and right join, and by the time this module is called to create the where query and table definition part of the SQL query, it's already too late. METHODS
See DBIx::Class::SQLMaker::OracleJoins for implementation details. BUGS
Does not support full outer joins. Probably lots more. SEE ALSO
DBIx::Class::SQLMaker DBIx::Class::SQLMaker::OracleJoins DBIx::Class::Storage::DBI::Oracle::Generic DBIx::Class AUTHOR
Justin Wheeler "<jwheeler@datademons.com>" CONTRIBUTORS
David Jack Olrik "<djo@cpan.org>" LICENSE
This module is licensed under the same terms as Perl itself. perl v5.16.2 2012-08-16 DBIx::Class::Storage::DBI::Oracle::WhereJoins(3)
All times are GMT -4. The time now is 06:26 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy