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

Home -> Community -> Usenet -> c.d.o.misc -> using trigger->stored proc -> Java...blob is empty

using trigger->stored proc -> Java...blob is empty

From: Erin Walter <emwalter_at_engin.umich.edu>
Date: 10 Oct 2001 12:23:56 -0700
Message-ID: <f73db37a.0110101123.4a11b085@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! Received on Wed Oct 10 2001 - 14:23:56 CDT

Original text of this message

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