On 05/26/2010 10:46 AM, John Scoles wrote:
> Bob McGowan wrote:
> 
> I am interested in this  one Bob here are my words on it.
> 
> 

-- Deleted my code details --

>>
>>   
> What I want you to do so I can properly debug this is
> 
> 1) tell me what version of DBD::Oracle you are useing
> 2) what version of Oracle
> 3) what platform is it running on
> 4) what version of Perl
> 
> finally
> If you are using a later version of  DBD::Oracle  I would like you to
> rerun  your code but this time do this
> 
> $dbd->{dbd_verbose}=15;
> 
> after you connect and then send me all the output from a test run of you
> .PL
> 
> cheers
> John Scoles
> 
> 

Hi, John,

So far as I can tell (I'm not a PL/SQL programmer) the append_comments
function does not explicitly create any temporary CLOB elements.  I can
provide the code for the procedure, if you think it would help.

Is it possible that the procedure needs to know it's dealing with a CLOB
temporary element from the DBD?

Here's the info you requested:

1)  DBD::Oracle is 1.24 (fyi, DBI is 1.611)
2)  Oracle instantclient v. 10.2.0.3, connecting to Oracle server
10.2.0.1.0 - 64bit
3)  DBD built on GNU/Linux (Debian 5.0.4), server running on a SPARC
sun4u with Solaris OS v. 5.10
4)  perl v5.8.8 built for i686-linux

The output for the test run is attached.

Thanks again.

-- 
Bob McGowan
Symantec
        dbd_preparse scanned 2 distinct placeholders
        OCIHandleAlloc(82d07e8,8309df0,OCI_HTYPE_STMT,0,0)=SUCCESS
        OCIStmtPrepare(82ef660,82e6378,'
                                BEGIN
                                  append_comments(:incident, :comments);
                                END;
                              ',179,1,0)=SUCCESS
        
OCIAttrGet(82ef660,OCI_HTYPE_STMT,8309dfc,0,OCI_ATTR_STMT_TYPE,82e6378)=SUCCESS
        dbd_st_prepare'd sql BEGIN (pl1, auto_lob1, check_sql1)
        dbd_describe skipped for BEGIN
dbd_bind_ph(): bind :incident <== '1199329' (type 0 (DEFAULT (varchar)))
dbd_rebind_ph() (1): rebinding :incident as '1199329' (not-utf8, ftype 1 
(VARCHAR), csid 0, csform 0(0), inout 0)
dbd_rebind_ph_char() (1): bind :incident <== '1199329' (size 7/8/0, ptype 
4(VARCHAR), otype 1 )
dbd_rebind_ph_char() (2): bind :incident <== ''119932' (size 7/8, otype 
1(VARCHAR), indp 0, at_exec 1)
          bind :incident as ftype 1 (VARCHAR)
        
OCIBindByName(82ef660,830a65c,82e6378,":incident",placeh_len=9,value_p=83089e0,value_sz=8,dty=1,indp=830a674,alenp=0,rcodep=830a66c,maxarr_len=0,curelep=0
 (*=0),mode=DATA_AT_EXEC,2)=SUCCESS
        
OCIBindDynamic(82ef42c,82e6378,830a638,b7c79a50,830a638,b7c79c70)=SUCCESS
        OCIAttrGet(82ef42c,OCI_HTYPE_BIND,830a648,0,31,82e6378)=SUCCESS
dbd_rebind_ph(): bind :incident <== '1199329' (in, not-utf8, csid 1->0->1, 
ftype 1 (VARCHAR), csform 0(0)->0(0), maxlen 8, maxdata_size 0)
        OCIAttrSet(82ef42c,OCI_HTYPE_BIND, bfffdce8,0,Attr=31,82e6378)=SUCCESS
dbd_bind_ph(): bind :comments <== 'this is a test
and more stuff.
' (type 0 (DEFAULT (varchar)), attribs: HASH(0x814d7f0))
dbd_rebind_ph() (1): rebinding :comments as 'this ...' (not-utf8, ftype 112 
(SQLT_CLOB / long), csid 0, csform 0(0), inout 0)
        OCIDescriptorAlloc(82d07e8,830a6e8,OCI_DTYPE_LOB,0,0)
        OCIAttrSet(82e4b9c,OCI_DTYPE_LOB, 
bfffdbb4,0,Attr=OCI_ATTR_LOBEMPTY,82e6378)=SUCCESS
        OCILobCreateTemporary(82e6304,82e6378,82e4b9c,0,0,2,1,10)=SUCCESS
        OCILobCharSetForm(82d07e8,82e6378,82e4b9c,1)=SUCCESS
        OCILobCharSetId(82d07e8,82e6378,82e4b9c,1)=SUCCESS
          calling OCILobWrite phs->csid=1 phs->csform=1 amtp=31
        
OCILobWrite(82e6304,82e6378,82e4b9c,bfffdbb0,1,8308958,31,0,0,0,1,1)=SUCCESS
          bind :comments as ftype 112 (SQLT_CLOB / long)
        
OCIBindByName(82ef660,830a6e4,82e6378,":comments",placeh_len=9,value_p=830a6e8,value_sz=4,dty=112,indp=830a6fc,alenp=0,rcodep=830a6f4,maxarr_len=0,curelep=0
 (*=0),mode=DEFAULT,0)=SUCCESS
        OCIAttrSet(82ef2f4,OCI_HTYPE_BIND, 
bfffdceb,0,Attr=OCI_ATTR_CHARSET_FORM,82e6378)=SUCCESS
        OCIAttrGet(82ef2f4,OCI_HTYPE_BIND,830a6d0,0,31,82e6378)=SUCCESS
dbd_rebind_ph(): bind :comments <== 'this ...' (in, not-utf8, csid 1->1->1, 
ftype 112 (SQLT_CLOB / long), csform 1(SQLCS_IMPLICIT)->1(SQLCS_IMPLICIT), 
maxlen 4, maxdata_size 0)
        OCIAttrSet(82ef2f4,OCI_HTYPE_BIND, bfffdce8,0,Attr=31,82e6378)=SUCCESS
   dbd_st_execute BEGIN (out0, lob1)...
Statement Execute Mode is 0 (DEFAULT)
                in  ':incident' [0,0]: len  7, ind 0, value='1199329'
        OCIStmtExecute(82e6304,82ef660,82e6378,1,0,0,0,mode=DEFAULT,0)=SUCCESS
        
OCIAttrGet(82ef660,OCI_HTYPE_STMT,bfffdd68,0,OCI_ATTR_ROW_COUNT,82e6378)=SUCCESS
        
OCIAttrGet(82ef660,OCI_HTYPE_STMT,bfffdd6e,0,OCI_ATTR_SQLFNCODE,82e6378)=SUCCESS
        dbd_st_execute BEGIN returned (SUCCESS, rpc1, fn34, out0)
        OCIHandleFree(82e4b9c,OCI_DTYPE_LOB)=INVALID_HANDLE
        OCITransCommit(82e6304,82e6378,0)=SUCCESS
        OCISessionEnd(82e6304,82e6378,8306a98,mode=DEFAULT 0)=SUCCESS
        OCIServerDetach(82e6904,82e6378,mode=DEFAULT,0)=SUCCESS
        dbd_st_destroy
        OCIHandleFree(82ef660,OCI_HTYPE_STMT)=SUCCESS
        OCILobIsTemporary(82d07e8,82e6378,82e4b9c,bfffda38)=SUCCESS
           OCILobFreeTemporary SUCCESS
        OCILobFreeTemporary(82e6304,82e6378,82e4b9c)=(UNKNOWN OCI STATUS 1041)
        OCIErrorGet(82e6378,1,"<NULL>",bfffd9a8,"",1024,2)=NO_DATA
        OCIDescriptorFree(82e4b9c,OCI_DTYPE_LOB)
        (in cleanup) DBD::Oracle::st DESTROY failed:  (DBD (UNKNOWN OCI STATUS 
1041): OCILobFreeTemporary) [for Statement "
                                BEGIN
                                  append_comments(:incident, :comments);
                                END;
                              "], <> line 2.
        OCIHandleFree(8306a98,OCI_HTYPE_SESSION)=SUCCESS
        OCIHandleFree(82e6904,OCI_HTYPE_SERVER)=SUCCESS
        OCIHandleFree(82e6304,OCI_HTYPE_SVCCTX)=SUCCESS
        OCIHandleFree(82e6378,OCI_HTYPE_ERROR)=SUCCESS

Reply via email to