#!/usr/bin/perl
use strict;
use DBI;
my $ip="";
my $port="";
my $sid="";
my $user="";
my $pwd="";
my $tablename;
my $delimiter;
my $path;
require public_pg;
my $field=undef;
my @row=undef;
sub getSelect2{
my ($dbh)=Suzm::connect_db($ip,$port,$sid,$user,$pwd);
#my $sthboth = "select * from tablename";
my $sthboth = "select * from ${tablename}";
my $sth=$dbh->prepare($sthboth);
$sth->execute();
print "Begin export data\n";
while(@row= $sth->fetchrow_array()){
#foreach(0..$#row){
foreach $field (@row){
$field =~ s/\n|\r//g;
print INFO "$field"."$delimiter";
}
print INFO "\n";
}
print "Export data ends\n";
$sth->finish();
$dbh->disconnect();
close(INFO);
}
#程序入口
sub main {
getSelect2();
return 0;
}
if($#ARGV<1){
print "Please input parameters:\n1.tablename\t 2.delimiter\t 3.fiel path\n";
exit(0);
}
$tablename=$ARGV[0];
if (uc($ARGV[1]) eq "B") {
$delimiter="# ";
}else{
$delimiter=$ARGV[1];
}
$path=$ARGV[2];
open (INFO,">","$path\\export_$tablename.dat");
my $rec=main();
exit($rec);
上面的是export,下面的是import
#!/usr/bin/perl
use strict;
use DBI;
my $ip="";
my $port="";
my $sid="";
my $user="";
my $pwd="";
my $tablename;
my $delimiter;
my $file;
my $val;
require public_pg;
#method 3;
my $field=undef;
my @row=undef;
sub Input_date{
my ($dbh)=Suzm::connect_db($ip,$port,$sid,$user,$pwd);
my $sth = $dbh->prepare(" insert into tablename values($val)") || die $dbh->errstr;
while (<FILE>) {
chomp;
my @get_values = split / /;
$sth->execute(@get_values) || die $dbh->errstr;
}
$dbh->disconnect();
close(FILE);
}
#程序入口
sub main {
Input_date();
return 0;
}
if($#ARGV<1){
print "Please input parameters:\n1.tablename\t 2.delimiter\t 3.fiel path and name\n";
exit(0);
}
$tablename=$ARGV[0];
if (uc($ARGV[1]) eq "B") {
$delimiter=" ";
}else{
$delimiter=$ARGV[1];
}
$file=$ARGV[2];
$val="?," x $ARGV[3];
$val =~ s/,$//g;
open (FILE,"<","$file");
my $rec=main();
exit($rec);
公共package
#!/usr/bin/perl -w
package Suzm;
sub connect_db{
my ($ip,$port,$sid,$user,$pwd)=@_;
my $dbh = DBI->connect("DBI:Oracle:host=$ip;port=$port;sid=$sid",$user,$pwd
,{AutoCommit=>1,PrintError=>1,RaiseError=>1}
) or die "Can't connect db,DBI->errstr";
return $dbh;
}
1;