[Cascavel-pm] DBD::Oracle --- Insert BLOB

Ricardo Portilho Proni ricardoportilho em terra.com.br
Quarta Junho 28 09:32:46 PDT 2006


Oi.

Estou inserindo um BLOB no Oracle, usando DBD, e recebo num erro estranho:

ORA-04043: object DIARIO.DOCS does not exist (DBD ERROR: Can´t match
some papameters to LOB fields in the table, check type and name)

No sqlplus, com o mesmo usuário e senha, eu faço connect, insert, delete 
e update sem problemas.

Segue o código:


if ($DRIVER eq 'Oracle') {
        $cmd = 'insert into DIARIO.DOCS
("id_doc","filename","size","description","title","date","lstermids","lstermpos","frozentermpos","fstar") 

'. " values
($doc_id,'$url',$sizes_db{$doc_id},'$desc_db{$doc_id}','$titles_db{$doc_id}','$dates_db{$doc_id}',:lstermids,:lstermpos,:frozentermpos,$fstar)";
    } else {
        $cmd = 'insert into DOCS
(id_doc,filename,size,description,title,date,lstermids,lstermpos,frozentermpos,fstar) 

'. " values
($doc_id,'$url',$sizes_db{$doc_id},'$desc_db{$doc_id}','$titles_db{$doc_id}','$dates_db{$doc_id}',?,?,?,$fstar)";
    }
    $sth = $dbh->prepare($cmd) or die "Can't prepare $cmd:
".$dbh->errstr."\n";
#
$sth->execute($termids{$doc_id},$indoc_db{$doc_id},$indoc_db_big{$doc_id})
or die "can't execute the query: " . $sth->errstr;
    $sth->bind_param(':lstermids',$termids{$doc_id},{ ora_type=>ORA_BLOB,
ora_field=>'"lstermids"' } );
    $sth->bind_param(':lstermpos',$indoc_db{$doc_id},{
ora_type=>ORA_BLOB, ora_field=>'"lstermpos"' } );
    $sth->bind_param(':frozentermpos',$indoc_db_big{$doc_id},{
ora_type=>ORA_BLOB, ora_field=>'"frozentermpos"' } );
    $sth->execute() or die "can't execute the query: " . $sth->errstr;
    $sth->finish;

	
-- 

Ricardo Portilho Proni
Oracle Database 10g Administrator Certified Associate
Microsoft Certified Professional
Nerv Informática Ltda.


Mais detalhes sobre a lista de discussão Cascavel-pm