It would only happen if the ora_auto_lob attribute has been explicitly set false.
See the docs.

Alas, I am not setting the ora_auto_lob attribute. according to the docs, this needs to be set on prepare. I'm calling selectrow_array (and selectrow_hashref), which take a hash of possible attributes, the same as those that would be passed to the prepare call, but I'm passing the empty hash in both cases. Here are my calls:


my $sql = q[
        select d.*,
        TO_CHAR(d.postdate, 'Day Month DD, YYYY @ HH12:MI am') postdate
        from sk2_discussion d
        where d.PostCode = ?
];
my $data = $dbh->selectrow_hashref($sql, {}, $postcode);

and:

my $parentmessage = $dbh->selectrow_array(q[
        select body
        from sk2_discussion
        where PostCode = ?
], {}, $parentcode);

Neither of these sets ora_auto_lob at all. Unfortunately, this doesn't happen on my test machines, only on my client's, and not every time.

I tried looking at DBD/Oracle.pm to see how the OCILobLocatorPtr was being decoded. Unfortunately (for me,) it's all in XS, so I can't tell.

Is there some way I can get more information about what is happening behind the scenes? I tried printing out $dbh->errstr when this occurs, but I get nothing.

Also, this only occurs when pulling from one specific table. Perhaps there's something messed up in the database, but I don't know enough about the inner workings of CLOBs to figure what it could be.

--Sean McMillan

Reply via email to