Hi all,

we're trying to read Oracle 9.0.1/2 CLOBS which are larger than 32 kb using
an unnamed PL/SQL block as data source. We always get the error ORA-06502
which means 'Numeric or value error'. If the CLOB is smaller than 32 kb,
everything goes ok.

It seems as if it is not possible to read more than 32 kb at once with
DBI/DBD-Oracle.

DBD::Oracle::VERSION = '1.12';
DBI Version: 1.30

Here is an extract of the code:
----snip-----
  $csr = $dbh->prepare (q {
declare
  l_objecthandle  NUMBER;
  l_objectData    CLOB;
  l_object_type varchar2(20) := 'VIEW';
  l_out varchar2(8196);
BEGIN
  l_objectHandle := DBMS_METADATA.OPEN(l_object_type);
  DBMS_METADATA.SET_COUNT(l_objecthandle, 1000);
  l_objectData := DBMS_METADATA.FETCH_CLOB(l_objecthandle);
  DBMS_METADATA.CLOSE(l_objecthandle);
  :text := l_objectData;
END;
                          }
                       );
  $csr->bind_param_inout (":text", \$text, { ora_type => ORA_BLOB });
  $csr->execute();
-----snap-----

Any suggestions how to solve this problem (without creating database tables
to store intermediate results)?

thanks for your time.
Johann Kandlbauer

GAMED mbH
Harterstr.48
A-8053 Graz
AUSTRIA
Tel +43 (316) 278 660-14
Fax +43 (316) 278 660-10

http://www.gamed.com

Reply via email to