Going to be a busy day for me here at 'real' :-( work but I will get on this tomorrow or if I am lucky tonight.

Cheers
John Scoles

Steve Baldwin wrote:
John,

I've tried the following combinations ...

11.1.0.6 client connecting to 9.2.0.8 DB (fully patched)
11.1.0.6 client connecting to 11.1.0.6 DB

Same result in both cases.  In case it matters, my OS is Ubuntu 8.04.

Note that the LOB refetch SQL is (from the trace) :

lob refetch sql: select BCOL "blob" from BCOL "blob" where rowid = :rid
for update

It should be :

select BCOL "blob" from sb_blob_x where rowid = :rid for update

Could you please post the output when you ran it so I can see what
differs.

Thanks,

Steve

On Wed, 2008-09-10 at 07:03 -0400, John Scoles wrote:
Well I am running my code against a 10.2 DB looks like you are using 9.2??

perhaps you patch-set for you 9.2 db is not up to date??

cheers
John Scoles

Steve Baldwin wrote:
I wonder what we have different.  Here's a run I just did that shows
Oracle version, DBI version, and DBD::Oracle version.  The Oracle client
is 11.1 full (i.e. not Instant) ...

[EMAIL PROTECTED] dev][2]$ sqlplus [EMAIL PROTECTED]

SQL*Plus: Release 11.1.0.6.0 - Production on Wed Sep 10 05:47:04 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Enter
password:
Connected to:
Oracle9i Release 9.2.0.8.0 - Production
JServer Release 9.2.0.8.0 - Production

SQL> Disconnected from Oracle9i Release 9.2.0.8.0 - Production
JServer Release 9.2.0.8.0 - Production
[EMAIL PROTECTED] dev][2]$ perl -e 'use DBI; print "$DBI::VERSION\n"'
1.52
[EMAIL PROTECTED] dev][2]$ perl -e 'use DBD::Oracle; print
"$DBD::Oracle::VERSION\n"'
1.22
[EMAIL PROTECTED] dev][2]$ ./blob.plx
create table ...done
create synonym ...done
insert (direct) ...done
insert (synonym) ...    DBI::db=HASH(0x202dafd0) trace level set to
0x0/3 (DBI @ 0x0/210453397504) in DBI 1.52-ithread (pid 3422)
    -> prepare for DBD::Oracle::db (DBI::db=HASH(0x202703b0)~0x202dafd0
'
    insert
    into    sb_blob_x (id, bcol)
    values  (:id, :blob)
    ') thr#1ffd0010

dbih_setup_handle(DBI::st=HASH(0x202daa90)=>DBI::st=HASH(0x202da590),
DBD::Oracle::st, 202daa70, Null!)
    dbih_make_com(DBI::db=HASH(0x202dafd0), 202b5e90, DBD::Oracle::st,
448, 0) thr#1ffd0010
    dbd_preparse scanned 2 distinct placeholders
    dbd_st_prepare'd sql INSERT (pl1, auto_lob1, check_sql1)
    dbd_describe skipped for INSERT
    <- prepare= DBI::st=HASH(0x202daa90) at blob.plx line 39
    -> bind_param for DBD::Oracle::st
(DBI::st=HASH(0x202daa90)~0x202da590 ':id' 20) thr#1ffd0010
dbd_bind_ph(): bind :id <== 20 (type 0 (DEFAULT (varchar)))
dbd_rebind_ph_char() (1): bind :id <== 20 (size 2/8/0, ptype 5(VARCHAR),
otype 1 )
dbd_rebind_ph_char() (2): bind :id <== '20' (size 2/8, otype 1(VARCHAR),
indp 0, at_exec 1)
      bind :id as ftype 1 (VARCHAR)
dbd_rebind_ph(): bind :id <== 20 (in, not-utf8, csid 873->0->873, ftype
1 (VARCHAR), csform 0->0, maxlen 8, maxdata_size 0)
    <- bind_param= 1 at blob.plx line 44
    -> bind_param for DBD::Oracle::st
(DBI::st=HASH(0x202daa90)~0x202da590 ':blob' 'yyyyy' HASH(0x202da5d0))
thr#1ffd0010
dbd_bind_ph(): bind :blob <== 'yyyyy' (type 0 (DEFAULT (varchar)),
attribs: HASH(0x202da5d0))
      bind :blob as ftype 113 (SQLT_BLOB / long)
dbd_rebind_ph(): bind :blob <== 'yyyyy' (in, not-utf8, csid 0->0->0,
ftype 113 (SQLT_BLOB / long), csform 0->0, maxlen 8, maxdata_size 0)
    <- bind_param= 1 at blob.plx line 45
    -> execute for DBD::Oracle::st (DBI::st=HASH(0x202daa90)~0x202da590)
thr#1ffd0010
   dbd_st_execute INSERT (out0, lob1)...
Statement Execute Mode is 32 (COMMIT_ON_SUCCESS)
       in  ':id' [0,0]: len  2, ind 0, value=20
    dbd_st_execute INSERT returned (SUCCESS, rpc1, fn3, out0)
       lob refetching a synonym named=SB_BLOB_X for
STBALDWINDBA.SB_BLOB lob refetch from table STBALDWINDBA.SB_BLOB, 2 columns:
       lob refetch table col 1: 'ID' otype 2
       lob refetch table col 2: 'BCOL' otype 113
       lob refetch :blob param: otype 113, matched field 'BCOL' by type
(BCOL "blob")
       lob refetch sql: select BCOL "blob" from BCOL "blob" where rowid
= :rid for update
       lob refetch 1 for ':blob' param: ftype 113 setup
    !! ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
error possibly near <*> indicator at char 24 in '
    insert
    into    <*>sb_blob_x (id, bcol)
    values  (:id, :blob)
    ')' (err#1)
    <- execute= undef at blob.plx line 46
1   -> FETCH for DBD::Oracle::st (DBI::st=HASH(0x202da590)~INNER
'ParamValues') thr#1ffd0010
       ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
error possibly near <*> indicator at char 24 in '
    insert
    into    <*>sb_blob_x (id, bcol)
    values  (:id, :blob)
    ')' (err#1)
1   <- FETCH= HASH(0x202da930)2keys at blob.plx line 46
DBD::Oracle::st execute failed: ORA-00942: table or view does not exist
(DBD ERROR: error possibly near <*> indicator at char 24 in '
    insert
    into    <*>sb_blob_x (id, bcol)
    values  (:id, :blob)
    ') [for Statement "
    insert
    into    sb_blob_x (id, bcol)
    values  (:id, :blob)
    " with ParamValues: :blob='yyyyy', :id=20] at ./blob.plx line 46.
    -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x202da590)~INNER)
thr#1ffd0010
       ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
error possibly near <*> indicator at char 24 in '
    insert
    into    <*>sb_blob_x (id, bcol)
    values  (:id, :blob)
    ')' (err#1)
    <- DESTROY= undef
    -> trace for DBD::Oracle::db (DBI::db=HASH(0x202703b0)~0x202dafd0 0)
thr#1ffd0010
       ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
error possibly near <*> indicator at char 24 in '
    insert
    into    <*>sb_blob_x (id, bcol)
    values  (:id, :blob)
    ')' (err#0)
    <- trace= 3 at blob.plx line 51 via  at blob.plx line 0



On Tue, 2008-09-09 at 07:00 -0400, John Scoles wrote:
Yes and I get no error with it it seems to run fine.
Steve Baldwin wrote:
Thanks for the response John.  Did you try the test case I put up on the
bug I logged in rt (see below)?

Steve

On Mon, 2008-09-08 at 09:54 -0400, John Scoles wrote:
Yep vacation was ok until I fell of the mountain but I am much better now :-)

Anyway my real job is keeping me busy so my DBD time is down to only a few hours a week for the next little while. I have worked this one up but I cannot seem to recreate the error but I am still working onit.

It it is on my list for 1.23

Cheers
John Scoles


Steve Baldwin wrote:
John,

Now that you are back from vacation (I hope it went well), did you see
this?  I have also logged it in rt here :

http://rt.cpan.org/Public/Bug/Display.html?id=38267

(Can't seem to get into rt at the moment so I can't see if there have
been any updates).

Anyway, if you get a chance to have another look at this, I would be
most grateful.

Cheers,

Steve

On Tue, 2008-08-05 at 14:24 +1000, Steve Baldwin wrote:
Hi,

The problem that existed for CLOB's and BLOB's in 1.21 has been
partially fixed.  The good news is that CLOB's appear to be OK.

BLOB's however appear to still be broken.  Here is an extract from a
level 3 trace ...

    DBI::db=HASH(0x61b8350) trace level set to 0x0/3 (DBI @
0x0/47120086204416) in DBI 1.52-ithread (pid 27618)
    -> prepare for DBD::Oracle::db (DBI::db=HASH(0x61a64d0)~0x61b8350 '
            INSERT
            INTO    sb_demo(data_b)
            VALUES  (:blob)
        ') thr#4e9b010
    dbih_setup_handle(DBI::st=HASH(0x632baa0)=>DBI::st=HASH(0x632bb90),
DBD::Oracle::st, 632bba0, Null!)
    dbih_make_com(DBI::db=HASH(0x61b8350), 61c0570, DBD::Oracle::st,
448, 0) thr#4e9b010
    dbd_preparse scanned 1 distinct placeholders
    dbd_st_prepare'd sql INSERT (pl1, auto_lob1, check_sql1)
    dbd_describe skipped for INSERT
    <- prepare= DBI::st=HASH(0x632baa0) at tst-utf8.plx line 191 via  at
tst-utf8.plx line 239
    -> bind_param for DBD::Oracle::st (DBI::st=HASH(0x632baa0)~0x632bb90
':blob' '..........�W....' (type 0 (DEFAULT (varchar)), attribs:
HASH(0x6311c40))
      bind :blob as ftype 113 (SQLT_BLOB / long)
dbd_rebind_ph(): bind :blob <== '........' (in, not-utf8, csid 0->0->0,
ftype 113 (SQLT_BLOB / long), csform 0->0, maxlen 8, maxdata_size 0)
    <- bind_param= 1 at tst-utf8.plx line 197 via  at tst-utf8.plx line
239
    -> execute for DBD::Oracle::st (DBI::st=HASH(0x632baa0)~0x632bb90)
thr#4e9b010
   dbd_st_execute INSERT (out0, lob1)...
Statement Execute Mode is 0 (DEFAULT)
    dbd_st_execute INSERT returned (SUCCESS, rpc1, fn3, out0)
lob refetching a synonym named=SB_DEMO for FRAMEWORK.SB_DEMO lob refetch from table FRAMEWORK.SB_DEMO, 3 columns:
       lob refetch table col 1: 'LINE_NUMBER' otype 2
       lob refetch table col 2: 'TEXT' otype 1
       lob refetch table col 3: 'DATA_B' otype 113
       lob refetch :blob param: otype 113, matched field 'DATA_B' by
type (DATA_B "blob")
       lob refetch sql: select DATA_B "blob" from DATA_B "blob" where
rowid = :rid for update
       lob refetch 1 for ':blob' param: ftype 113 setup
    !! ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
OCIStmtExecute/LOB refetch)' (err#1)
    <- execute= undef at tst-utf8.plx line 198 via  at tst-utf8.plx line
239
    -> HandleError on DBI::st=HASH(0x632bb90) via CODE(0x6311080)
(undef)

It appears it is attempting to use the BLOB column name for the table
name in the refetch SQL statement.

Thanks for your help.

Steve



******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************

******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************

******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************


******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************




******************************************************************
This email is intended solely for the use of the addressee and may
contain information that is confidential, proprietary, or both.
If you receive this email in error please immediately notify the
sender and delete the email.
******************************************************************

Reply via email to