--howdy:
 
--thanks for the reply and the assist.

--background and overview:

--i am trying to port some tables to
--Oracle 9i on my linux box.  With PostgreSQL,
--i can do a pg_dump and get the table structure
--and data ... but because there are some differences
--between the two DBs, I can't just dump the structure
--and load it to Oracle for all of the tables.

--so, my idea is this: i'd like to write a query
--to get the a list of tables and the structure
--type and append it into some *.ddl format file
--per user. that way, i can use Oracles' sqlldr 
--program to load the DDL file and then insert 
--the data from PostgreSQL in the two scripts.

--in the below script, i am trying to test to see
--if i can get the tablename and owner and use
--a place holder to get a list of users.  the
--reason i think this is useful is if i try to
--run a  query where i do a subquery, the results
--take a long time - but i don't know if there 
--is a real difference in speed.

--regardless, in the below query, i guess i expect
--that the 'execute' query should get a list of 
--users and place the results into the place holder
--in the EOQ loop.  but what i actually see is
--only some of the tables and those tables are
--owned by one person.

--what i don't understand is:

* what should the 'execute' part actually
bring back (select distinct tableowner from pg_tables)
if not the entire list of unique users?

* should the place holder portion (the EOQ part)
only take one user and do the query?

* to omit the 'execute' part, how can i write
a query to get the tablename and structure of
each table per user?  i did the psql -E to echo
what PostgreSQL sees to get a list, but i got
a list that only produced the structure (column
names) and users ... but i missed the tablenames.

--that's what i have so far.

--suggestions?  thanks!

-X

-----Original Message-----
From: K Old
To: Johnson, Shaunn
Sent: 6/17/03 10:56 AM
Subject: RE: example of placeholders

Shaunn,

Can you give a description of what you are trying to do step by step.

I'm very familiar with Pg and do many complex queries at a time as it
seems you're trying to do. 

I can offer help if you explain exactly what you're trying to do.

Kevin

On Tue, 2003-06-17 at 10:32, Johnson, Shaunn wrote:
> --howdy.
> 
> --i think i am getting closer to solving this, but
> --i have ran into a problem.
> 
> --the below program works to the point where it
> --will return the data, but not ALL of the data.
> 
> --for example, i get only about 50 or so lines when
> --if i do the queries by hand, i get over 200 with 
> --different $tables and $users.  in the outfile,
> --i only get the first person and some of her tables.
> --is it my query?  how can i tell where this script
> --is failing since Perl has not generated an error?
> 
> --thanks again!
> 
> -X
> 
> 
> [snip script] 
> 
> #!/usr/bin/perl -w
> 
> # created: 16 June 03 -X
> 
> # script to get table information and 
> # append it to a new file (DDL format)
> # and prep for use by Oracle
> #
> 
> use strict;
> use diagnostics;
> use DBI;
> use Cwd;
> 
> ###
> ### i create a list of users to 
> ### abuse later
> ###
> 
> my $list="userlist.txt";
> my $file="newlist.txt";
> my $local_dir=cwd;
> 
> open (DIR, $local_dir) or die "can nae open local directory: $!";
> 
> 
> my $date=`date '+%d %B %Y'`;
> chomp ($date);
> 
> # should be the address of sender and users
> my $addr='[EMAIL PROTECTED]';
> 
> # when all else fails ... cheat ...
> 
> # get a list of users best way  you 
> # can and keep a text copy.
> 
> # connect to database
> 
> my $dbh=DBI->connect('dbi:Pg:dbname='test_db', 'joe_user')
>         or die "Can not connect: $!";
> 
> # get list to use later
> 
> my $sql =<<EOQ;
>       select tablename, tableowner
>       from pg_tables
>       where tableowner = ?
> EOQ
> 
> # set up error checking
> my $sth=$dbh->prepare($sql) or die "Error =", DBI::errstr;
> 
> $sth->execute($dbh->selectrow_array('select distinct tableowner from
> pg_tables'));
> 
> #
> # this works; now will test the sql part
> #
> #$sth->execute ('joe_user');
> 
> unless ($sth->execute) {
>         print"\n\tExecute failed for stmt:\n\t$sql\nError = ",
> DBI::errstr;
>         $sth->finish;
>         $dbh->disconnect;
>         die "\n\t\tClean up finished\n";
> }
> 
> open FILE, ">$file" or die "can nae open text file: $!";
> 
> while ( my($table, $user)=$sth->fetchrow_array ) {
>         print FILE "$table", "$user", "\n";
> }
> 
> close (DIR);
> close (FILE);
> 
> $sth->finish();
> 
> $dbh->disconnect;
> 
> __END__
> 
> 
> [/snip script]
-- 
K Old <[EMAIL PROTECTED]>

Reply via email to