Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: trigger -> stored proc -> Java code

Re: trigger -> stored proc -> Java code

From: Sybrand Bakker <postbus_at_sybrandb.demon.nl>
Date: Wed, 10 Oct 2001 22:37:19 +0200
Message-ID: <ts9df9ia11j9db@news.demon.nl>

"Erin Walter" <emwalter_at_engin.umich.edu> wrote in message news:f73db37a.0110101137.7dc27c54_at_posting.google.com...
> So, I am having a big problem. The problem is that I created a
> trigger that fires after a insert into a table. That trigger then
> calls a stored procedure which then refers to some Java code, please
> refer to code below for more information. My problem is that when
the
> blob comes into the Java code the length of the blob is 0 and I can
> not get any information out of it ...even though there is data in the
> blob in the database. I REALLY need some help....I have been stuck
> for 3 days and asked everyone, including Oracle...if you know
> anything..PLEASE HELP!!!
>
> The code:
>
> I have a trigger that happends after an insert into a table. The
> trigger is:
>
> BEGIN
> IF (:new.nReplacedID > 0) THEN
> Replaced_Packet(:new.nOriginalPacketID, :new.nLoadID,
> :new.tSCETTime, :new.nPacketType, :new.sChannel,
:new.nReplacedID,
> :new.oPacket);
> ELSE
> New_Packet(:new.nOriginalPacketID, :new.nLoadID,
> :new.tSCETTime, :new.nPacketType, :new.sChannel,
:new.nReplacedID,
> :new.oPacket);
> END IF;
> END;
>
> Here's the stored Procedure:
>
> (nPacketID NUMBER, nLoadID NUMBER, tSCETTime DATE, nPacketType
> NUMBER,
> sChannel CHAR, nReplacedID NUMBER, oPacket BLOB)
> AS LANGUAGE JAVA NAME
> 'Expand.Packet(int, int, java.sql.Date, int, java.lang.String, int,
> java.sql.Blob)';
>
> Here the beginning of the Java code:
> import java.io.*;
> import java.sql.*;
> import java.lang.*;
> import oracle.jdbc.driver.*;
> import oracle.jdbc.*;
> public class Expand
> {
> //*****************************************************************
> //*****************************************************************
> //***********************Packet********************************
> //Summary: This function is called when it is a new packet.
> //*****************************************************************
> //****************************************************************
> public static void Packet(int nOriginalPacketID, int nLoadID,
> java.sql.Date tSCETTime, int nPacketType, String sChannel, int
> nReplacedID, java.sql.Blob oPacket)
> {
> int fill_in;
> java.sql.Connection conn;
> System.out.println("beginning");
> try{
> conn = new OracleDriver().defaultConnection();
> long nblobLength = oPacket.length();//the length of
the blob
> System.out.println("the blob length is "+
nblobLength);
> System.out.println("after");
> }catch(SQL Exception e){}
> }//end of the function
> }//end of the class
>
> ANY HELP would be appreciated!!! Thank you for your time!

Why are you not using dbms_lob.length?
No need for Java anymore!

Hth,

Sybrand Bakker
Senior Oracle DBA Received on Wed Oct 10 2001 - 15:37:19 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US