This is the error message I recieve when I run my script:

DBD::Oracle::db prepare failed: ORA-00904: invalid column name (DBD ERROR: 
OCIStmtExecute/Describe) at 3mfiles.pl line 63.
DBD::Oracle::db prepare failed: ORA-00904: invalid column name (DBD ERROR: 
OCIStmtExecute/Describe) at 3mfiles.pl line 63.
Issuing rollback() for database handle being DESTROY'd without explicit 
disconnect().

What is wrong with my code?

---------------------------------------------------------------


                        ## SQL query for folder OID
                        $rootDir = "/Adventech/projects";

        my $dbh = DBI->connect( 'dbi:Oracle:thedb',
                        'user',
                        'password',
                        {
                                RaiseError => 1,
                                AutoCommit => 0
                        }
        ) || die "Database connection not made: $DBI::errstr";

        my $sql = qq{ SELECT c.oid AS folder_oid FROM dp_doc_folder_content 
c, bv_ep_proj_attach WHERE c.DOC_DEL
ETED=0 AND c.DOC_OID=a.ASSOC_CONTENT AND a.file_path = 
'$rootDir/$projectId/$docName' };
        my $sth = $dbh->prepare ( $sql );
        $sth->execute or die "Can't execute sth: $DBI::errstr.";

        while( my@row = $sth->fetchrow_array )
                {
                        my$oid=$row[0];
                        print "$oid\n";
                }
        $sth->finish();
        $dbh->disconnect();

------------------------------------------------------------

I think I am screwing up the whole while loop.

-garrett

>From: "garrett esperum" <[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>Subject: Database Access Problem (again)
>Date: Thu, 02 May 2002 11:45:33 -0700
>
>Hello all again,
>
>Solaris, Perl 5, Oracle 8.1.6
>
>OK, so here I am... Now I am having issues accessing my database from my
>Perl SQL query. I want to query my DB and put it's response into a variable
>to be used later. I really think that I am structuring my perl query wrong.
>How do I get my SELECT statement to work and put the query answer into a
>variable? I don't have much experience with this. Again, I am running this
>script against strings like:
>
>/export/home/user/www/doc-root/directory/projects/19463/1_0001.doc
>
>Below is my whole script thus far:
>
>#USAGE: migratefiles Path
>#
>#       ex: migratefiles
>
>use DBI;
>process_files($ARGV[0]);
>
>#
>----------------------------------------------------------------------------
>sub process_files {
>    $dir=shift;
>    $_ = $dir;
>    if (!/\/$/) {
>   $dir = $dir."/";
>    }
>    @flist;
>    print "Specified Directory: $dir\n";
>
>    if (opendir(DIRH, "$dir")) {
>        @flist=readdir(DIRH);
>        closedir DIRH;
>        foreach $flist (@flist) { ## loop through directory list
>            $_ = $flist;
>            next if ($_ eq "." || $_ eq "..");
>            $projectDocDir = $dir.$_;
>            print "PROCESS: $projectDocDir\n";
>
>
>            ##loop through files in project document directory
>
>            if (opendir(DIRH, "$projectDocDir")) {
>                @dirlist=readdir(DIRH);
>                closedir DIRH;
>                foreach $dirlist (@dirlist) { ## loop through Project Doc
>directory list
>                        $_ = $dirlist;
>                        next if ($_ eq "." || $_ eq "..");
>                        if (! -l "$projectDocDir/$_"){
>                                print "$projectDocDir/$_\n";
>                        }
>
>
>
>                        ##put yur filename with .dir in $_
>                        ##$docName =~ s/(.*)\.dir$/$1/;  ## strip off 
>".dir"
>                        $docName = substr($_, 0, length($_)-4);
>                        $docFolder = "$projectDocDir/$_";
>                                print "$docName , $docFolder\n";
>                        ##get the project id
>                        $projectId = substr($projectDocDir, length($dir),
>index($projectDocDir, "/", length($dir)-1));
>                        print "$projectId\n";
>
>                        ## SQL query for folder OID
>                        $rootDir = "directory/projects";
>
>        my $dbh = DBI->connect( 'dbi:Oracle:thedb',
>                        'user',
>                        'passwd',
>                        {
>                                RaiseError => 1,
>                                AutoCommit => 0
>                        }
>        ) || die "Database connection not made: $DBI::errstr";
>
>        my $sql = qq{ SELECT c.oid AS folder_oid
>                      FROM dp_doc_folder_content c, bv_ep_proj_attach a
>                      WHERE c.DOC_DELETED=0
>                      AND c.DOC_OID=a.ASSOC_CONTENT
>                      AND a.file_path = '$rootDir/$projectId/$docName' };
>
>        my $sth = $dbh->prepare ( $sql );
>        $sth->execute();
>
>        while( my@row = $sth->fetchrow_array )
>                {
>                        my$oid=$row[0];
>                        print "$oid\n";
>                }
>
>        $sth->finish();
>        $dbh->disconnect();
>
>                }
>           }
>        }
>
>
>    } else {
>        print "ERROR: can not read directory $dir\n";
>    }
>}
># -------------------------------------------------------------------------
>
>I appreciate all your help!! Thanks.
>
>-garrett
>
>
>_________________________________________________________________
>Chat with friends online, try MSN Messenger: http://messenger.msn.com
>
>
>--
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>




_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to