Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Export whole schema except data from 1 table?
On 06/20/2006 11:40:56 PM, Dennis Williams wrote:
> Michael,
>
> Time to learn the DBAs friend.
> select table_name||"," from user_tables
>
> Dennis Williams
Something like this might also be helpful:
#!/usr/bin/perl -w
use strict;
use DBI;
my ( $username, $password, $base, $notlike, $direct );
my ( $file, $buffsize, $pattern ) = ( "export.par", 10485760, "%" );
my $expfile = "expdat.dmp";
my $TAB = qq(select table_name from user_tables where table_name like upper(:PATT));
use Getopt::Long;
# Parse command line options
my $stat = GetOptions( "u|username=s" => \$username, "p|password=s" => \$password, "d|db=s" => \$base, "f|file=s" => \$file, "e|expfile=s" => \$expfile, "b|buff=s" => \$buffsize, "t|patt=s" => \$pattern, "c|direct" => \$direct, "n|negate" => \$notlike, "h|help|?" => \&usage);
die("Target database is unknown.\n") unless defined($base); if ( !defined($username) || !defined($password) || !$stat ) { usage(); } if ($notlike) { $TAB = qq(select table_name from user_tables where table_name not like upper(:PATT));}
print OUT "userid=$username/$password\@$base\n"; print OUT "file=$expfile\n"; print OUT "buffer=$buffsize\n"; print OUT "direct=y\n" if $direct; my $out = "tables=(\n";
while ( my @row = $sth->fetchrow_array() ) {
$out .= $row[0] . ",\n";
}
$out =~ s/,\n$/\)/m;
print OUT "$out\n";
close(OUT);
END {
$dbh->disconnect() if defined $dbh;
}
sub db_connect {
my ( $username, $passwd, $db ) = ( @_, $ENV{"TWO_TASK"} ); my $dbh = DBI->connect( "dbi:Oracle:$db", $username, $passwd )
|| die( $DBI::errstr . "\n" );
$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->{ora_check_sql} = 0; $dbh->{RowCacheSize} = 16;
sub usage {
use File::Basename;
my $nm = basename($0);
print qq($nm -> write export parameter file
USAGE:$nm -u=user -p=passwd -d=dtabase -f file OPTIONS: -u oracle username -p password for the above -d database to connect to -f file to create -e export file to put in the parameter file -n negate condition -t pattern to filter tables -b buffer size -c direct export -o owner ------- Username and password are mandatory arguments. Default for the output file is standard output. For help, try -help or -h.
exit(0);
}
-- Mladen Gogala http://www.mgogala.com -- http://www.freelists.org/webpage/oracle-lReceived on Tue Jun 20 2006 - 23:56:22 CDT
![]() |
![]() |