I've just noticed an apparent regression/change_of_behaviour that
affects me.

We do a good deal of our DB access accessing tables via private
synonyms.  That is, we connect via schema_X which has a private synonym
(lob_table) to schema_Y.lob_table.

On our 'current' machines which have DBD::Oracle ver 1.15, everything
works fine.

On our 'new' machines which have DBD::Oracle ver 1.21, if I attempt to
insert/update a lob column, connecting as schema_X, I get an error 942 -
table or view does not exist.

It would seem the error is not being caused by the insert/update, but
something DBD::Oracle is doing afterwards.  Here is a snippet from the
trace ...

:
    DBI 1.605-ithread default trace level set to 0x0/2 (pid 26352) at
sb3.plx line 79 via sb3.plx line 124
    -> prepare for DBD::Oracle::db (DBI::db=HASH(0x8e59c0c)~0x8e59738 '
        insert
        into    sb1 (id, text_b)
        values  (100, :txt)
        ') thr#8153008
    dbd_preparse scanned 1 distinct placeholders
    <- prepare= DBI::st=HASH(0x8edbeb4) at sb3.plx line 80
    -> bind_param for DBD::Oracle::st (DBI::st=HASH(0x8edbeb4)~0x8bef8c0
':txt' '....���A..zip-usa.csv.Խ�.�:.�{�..��...' (type 0, attribs:
HASH(0x8153c28))
    <- bind_param= 1 at sb3.plx line 85
    -> execute for DBD::Oracle::st (DBI::st=HASH(0x8edbeb4)~0x8bef8c0)
thr#8153008
    dbd_st_execute INSERT (out0, lob1)...
Statement Execute Mode is 0
    dbd_st_execute INSERT returned (SUCCESS, rpc1, fn3, out0)
    !! ERROR: '942' 'ORA-00942: table or view does not exist (DBD ERROR:
OCIStmtExecute/LOB refetch)' (err#1)
    <- execute= undef at sb3.plx line 87
    -> HandleError on DBI::st=HASH(0x8bef8c0) via CODE(0x8ed5ff4)
(undef)
:

If I either connect as schema_Y (which owns the table), or qualify the
table name with the schema name (e.g. schema_y.sb1), the error does not
occur.

If I wrap the insert/update with a BEGIN .. END; (i.e. turn it into an
anonymous pl/sql block), it works ok, but I'd rather not have to go
through all our code and do this.

Is this a regression, or intended new behaviour?

Thanks,

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.
******************************************************************

Reply via email to