Okay, I revised my code for test thusly:

             my @pkt = unpack("C*", $packetCard) ;
             my $pkt = Bin2Hex_Packet([EMAIL PROTECTED]) ;
             $osaq->bind_param(':ImmPacket', $pkt
                                { ora_type => ORA_RAW }) ;
             print "$pkt\n" ;
             $osaq->bind_param(':ImmPacketLen', length($pkt)) ; # bind
size

... And I still don't see a change, except the :ImmPacketLen correctly
shows up as 414, but there is still no accompanying binary (or
otherwise) user_data in the queue.

"USER_DATA" needs to show up as binary with a length of 207.  I tried
passing 207 as the length, and still no luck.  Anyone got any ideas?

Thanks,

Joe

-----Original Message-----
From: Tim Bunce [mailto:[EMAIL PROTECTED] On Behalf Of Tim Bunce
Sent: Wednesday, August 06, 2008 3:51 AM
To: Orcino, Joe
Cc: [email protected]; Phelan, Tom
Subject: Re: Bug in DBD::Oracle v 1.21 ?

On Tue, Aug 05, 2008 at 04:53:16PM -0700, Orcino, Joe wrote:
>              $osaq->bind_param(':ImmPacket', $packetCard
>                                 { ORA_TYPE => ORA_RAW }) ;

> For each execution (in a loop), I get no errors and the queue is 
> incremented (indicating receipt of a record), but in the database, my 
> binary :ImmPacket field is empty in the queue!
> I have made sure that the variable I am passing ($packetCard) does 
> contain 207 bytes of binary information.

I think the ORA_RAW type needs to be encoded as pairs of hex digits, and
not as a binary string. In which case you need to use pack("H*",...).
(I might be wrong though, it's been a while since I've used RAW.)

Tim.
**************************************************************************************
This e-mail is confidential, the property of NDS Ltd and intended for the 
addressee only.  Any dissemination, copying or distribution of this message or 
any attachments by anyone other than the intended recipient is strictly 
prohibited.  If you have received this message in error, please immediately 
notify the [EMAIL PROTECTED] and destroy the original message.  Messages sent 
to and from NDS may be monitored.  NDS cannot guarantee any message delivery 
method is secure or error-free.  Information could be intercepted, corrupted, 
lost, destroyed, arrive late or incomplete, or contain viruses.  We do not 
accept responsibility for any errors or omissions in this message and/or 
attachment that arise as a result of transmission.  You should carry out your 
own virus checks before opening any attachment.  Any views or opinions 
presented are solely those of the author and do not necessarily represent those 
of NDS.

To protect the environment please do not print this e-mail unless necessary.

NDS Limited Registered office: One Heathrow Boulevard, 286 Bath Road, West 
Drayton, Middlesex, UB7 0DQ, United Kingdom. A company registered in England 
and Wales  Registered no. 3080780   VAT no. GB 603 8808 40-00
**************************************************************************************

Reply via email to