Re: Perl & Informix
Posted in 1997
Topics: SQL Development & Query Writing, Stored Procedures & SPL, Server Administration, Transactions, Locking & Isolation, Migration, Import/Export & Data Conversion
I'm not sure if this is what you're after ...
#!/usr/local/bin/perl
...
#variables
# find out the hostname and do an if statement for some variables
$host = `hostname`;
#variables
$rt = "rt0"; # Runtime
$opername = "xyz"; # operator login name
$tmp = "/tmp"; # tmp directory
# informix variables
if ($host =~ "machine1") {
$INFORMIXSERVER = "${opername}_ds1"; # informix server
}
elsif ( $host =~ "machine2") {
$INFORMIXSERVER = "${opername}_ds0";
}
elsif ( $host =~ "machine3") {
$INFORMIXSERVER = "${opername}_ds2";
}
$INFORMIXDIR = "/usr/informix";
# Environment variables
$ENV{'INFORMIXSERVER'} = "${INFORMIXSERVER}";
$ENV{'INFORMIXDIR'} = "${INFORMIXDIR}";
...
$rundir = "/tfsrun/${opername}/mydir/run"; # Runtime directory
$reportname = "${tmp}/testprog.unl"; # Report name
$sqlerr = "${tmp}/${rt}sqlerr_snp.$$"; # Dbacess sterr file
$sqlres = "${tmp}/${rt}results_snp.$$"; # Dbacess sterr file
$dbname = "${opername}"; # Database name
...
$tresult = `rm -f ${reportname}`; # Report name
# Open dbaccess session to run the select statements.
open(DBA, "|${INFORMIXDIR}/bin/dbaccess $dbname - 2>$sqlerr 1>$sqlres")
|| die "Could not pipe to dbaccess: $!";
print DBA "SET ISOLATION TO DIRTY READ;\\n";
print DBA "UNLOAD TO \\"${reportname}\\"\\n";
print DBA "select job_id, date_in, job_name from jobs_table order by date_in;\\n";
close (DBA);
if (checkSqlError("$sqlerr", 0)) {
warn "Error unloading from database: $!\\n";
}
#now read the file and make the report
open ( DEV, "${reportname}")
|| die "Couldn't open report file: $!\\n";
@blist = ();
while (<DEV>) {
push (@blist, $_);
}
close(DEV);
printf OUTPUTF ("The jobs in the Informix database, oldest to newest are:\\n");
printf OUTPUTF (" Job Id Date In Name\\n");
#printf OUTPUTF ("%s\\n", $tdatelst);
$count = 1;
foreach (@blist) {
local ($jobid, $datein, $jobname) = split (/\\|/, $_);
printf OUTPUTF (" %-10s %-10s %s \\n",
$jobid, $datein, $jobname);
$count++;
}
...
================
Greg Williamson
gsw@tfs.com
---
TRW Financial Systems doesn't speak for me, and I don't speak for them.