Updating Oracle BLOBs through Tomcat's DBCP

Hi, I've been using Tomcat's DBCP and I'm trying to cast my ResultSet to an OracleResultSet so I can use the getBLOB message. I've searched and realized I had to take part of it out of the wrapper, so I got the connection out of the wrapper using:
con = ds.getConnection().getMetaData().getConnection();which returned an OracleConnection. However, when I work through the rest of the code, it finally gets to:
BLOB filedata = ((OracleResultSet)oRS).getBLOB("filedata");and it dies with:
java.lang.ClassCastException: oracle.jdbc.driver.OracleResultSetImplIf I connect using JDBC without the DBCP datasource, this code works fine. I'm not sure why I can't cast it to something I can use. Can anyone provide some insight on this? I've searched and searched for solutions and tried so many things, but nothing has worked so far aside from just connecting using JDBC.
The ResultSet is not a DelegatingResultSet, which had tripped me up originally. Once I removed the wrapper from the connection, it seemed to give me all the correct types (OracleConnection, OracleStatement, & OracleResultSetImpl), but I can't seem to use the OracleResultSetImpl.
Here's my method:
public static int store(InputStream in) throws SQLException,IOException {
        Connection con = null;
            Context initContext = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource)envContext.lookup("jdbc/develop");
            con = ds.getConnection().getMetaData().getConnection();
        int id = 17;
        String sql = "SELECT file_id,filedata FROM super_files WHERE file_id = "+id+" for update";
        //sql = "SELECT file_id FROM super_files";
        Statement stmt2 = con.createStatement();
        System.out.println("stmt2 class: "+stmt2.getClass());
        ResultSet oRS = stmt2.executeQuery(sql);
        int key = 0;
        if (oRS.next()) {       
/* this next line is where it dies */
            BLOB fileData = ((OracleResultSet)oRS).getBLOB("filedata");
               int bufferSize = fileData.getBufferSize();
                byte buffer[] = new byte[bufferSize];
                OutputStream os = fileData.getBinaryOutputStream();
                int bytesRead = 0;
                while ((bytesRead = in.read(buffer)) != -1) {
                    os.write(buffer, 0, bytesRead);
                in.close();
                os.close();
        oRS.close();
        stmt2.close();       
        con.commit();
        return key;
    }

Hi, I am having the same problem. Were you able to resolve it? Please let me know. I have searched thru the entire WWW but coulnd't find the solution.

Similar Messages

  • [svn] 1590: Updating WebService RPC tests that previously used external endpoints at whitemesa . net to now use internal endpoints accessed through Tomcat server on localhost :8400/qa-regress/axis/services/{SERVICE_NAME}?wsdl

    Revision: 1590
    Author: [email protected]
    Date: 2008-05-07 08:49:22 -0700 (Wed, 07 May 2008)
    Log Message:
    Updating WebService RPC tests that previously used external endpoints at whitemesa.net to now use internal endpoints accessed through Tomcat server on localhost:8400/qa-regress/axis/services/{SERVICE_NAME}?wsdl
    Endpoints built from Axis SOAPBuilder tests in Perforce's /depot/axis/xml-axis/java/tests/
    Modified Paths:
    blazeds/branches/3.0.x/qa/apps/qa-regress/WEB-INF/server-config.wsdd
    blazeds/branches/3.0.x/qa/apps/qa-regress/WEB-INF/web.xml
    blazeds/branches/3.0.x/qa/apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/int erop/SOAPBuilderRound3Import1_WhiteMesaTest.as
    blazeds/branches/3.0.x/qa/apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/int erop/SOAPBuilderRound3Import3_WhiteMesaTest.as
    blazeds/branches/3.0.x/qa/apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/int erop/SOAPBuilderRound3RPCEncoded.as
    Added Paths:
    blazeds/branches/3.0.x/qa/apps/qa-regress/WEB-INF/lib/
    blazeds/branches/3.0.x/qa/apps/qa-regress/WEB-INF/lib/javax_mail.jar
    blazeds/branches/3.0.x/qa/apps/qa-regress/WEB-INF/lib/qa-services-wm.jar
    blazeds/branches/3.0.x/qa/apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/int erop/SOAPBuilderRound3Compound1.as

  • To update my remote oracle server through e mail

    hai,
    i want to update my remote oracle server through e mail which should run automatically for every 3 hours(for example)
    both(remote and local) are oracle 8.1.7 running in windows 2000 server
    Please let me know how to go about....
    help me in this context...
    urs
    srini

    Sri
    you can do with some SMTP programming like that one available in VisuaBasic. you can read the mail from an inbox
    from a mail account of an SMTP SERVER. Then you may try to update the remote database.
    Well i have mentioned VB as i heard it long back from my GURUJI that it is possible thru SMTP programming in VB
    using the socket controls etc,.
    Please check it out in some visuabasic forum sites and ask some VB Gurus.
    Thanks
    Prakash
    [email protected]

  • Tomcat/Comnmons DBCP/Oracle RAC

    Does anybody know if the commons pooling used in Tomcat will work with RAC 10g?
    I've asked this question elsewhere but don't seem to be getting anybody who knows for sure.
    My impression is that special coding would be required in the initialization of the datasource to use RAC and that commons DBCP does not do this.
    Can anyone confirm or refute this?

    I'm wanting to do this as well.
    I've got a 10g RAC with two nodes. I only want fail-over. I don't want load balancing.
    I'm using Tomcat 6.0.20 and DBCP for the DataSource.
    Some of the stuff I've been finding in my searches has vaguely suggested that I would need to use an Oracle connection pool in order to get fail-over and DBCP can't be made to work. However, that suggestion is vague, and the references are old, and nobody seems to really know what they're talking about. Some people seem to know Tomcat/DBCP but not Oracle. Some people seem to know Oracle but not Tomcat/DBCP. Most people seem to be searching around in the dark like me. The search for information about this has been frustrating.
    This is what I'm thinking:
    url="jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=flvr)))"
    The flvr service is set up for both nodes. Will this fail over properly?
    Unfortunately, I don't have a test RAC that would allow me to see
    what happens when I kill the preferred host (host1).

  • Problem with update of BLOB field in a table with compound primary key

    Hi,
    I've been developing an application in Application Express 3.1.2.00.02 that includes processing of BLOB data in one of the tables (ZPRAVA). Unfortunately, I've come across a strange behaviour when I tried to update value in a BLOB field for an existing record via a DML form process. Insert of a new record including the BLOB value is OK (the binary file uploads upon submiting the form without any problems). I haven't changed the DML process in any way. The form update process used to work perfectly before I'd included the BLOB field. Since than, I keep on getting this error when trying to update the BLOB field:
    ORA-20505: Error in DML: p_rowid=3, p_alt_rowid=ID, p_rowid2=CZ000001, p_alt_rowid2=PR_ID. ORA-01008: not all variables bound
    Unable to process row of table ZPRAVA.
    OK
    Some time ago, I've already created another application where I used similar form that operated on a BLOB field without problems. The only, but maybe very important, difference between both the cases is that the first sucessfull one is based on a table with a standard one-column primary key whereas the second (problematic one) uses a table with compound (composite) two-column PK (two varchar2 fields: ID, PR_ID).
    In both cases, I've followed this tutorial: [http://www.oracle.com/technology/obe/apex/apex31nf/apex31blob.htm]).
    Can anybody confirm my suspicion that Automatic Row Processing (DML) can be used for updating BLOB fields within tables with only single-column primary keys?
    Thanks in advance.
    Zdenek

    Is there a chance that the bug will be included in the next patch?No, this fix will be in the next full version, 3.2.
    Scott

  • Problem with ojdbc14.jar (oracle10g Rel. 2 driver) in updating a BLOB field

    Hello All,
    Our web application uses oracle10g Release 2 jdbc driver with websphere 5.1.1.4 and oracle 9i. When it tries to update a BLOB field in the database updation is successful but it is updating that field with a null value. So rest of our application fails as this value is becoming null. We use an entity bean to update this table and websphere uses a prepared statement to update this table. Just before setting this BLOB field using setBinaryStream() on prepared statement I am printing to see whether it is null or not as shown in the code snippet below. And it is printing it correctly as non null. But after execution of the prepared statement some how the value stored in database is null.
    Is this a known issue with this driver? Does any one know work around or a solution to this? We have 3 BLOB fields in that table. Is that a problem? If we separate these BLOB fields into separate tables will the problem be solved? Any input on this is very much appreciated.
    // For column ORIGINAL_CONTENT
    byte[] tempbyteArray;
    tempbyteArray=(byte[])inputRecord.get(25);
    if (tempbyteArray == null) {
    System.out.println("DqPageBeanFunctionSet_f9c724af: tempbyteArray NULLLLLLL");
    } else {
    System.out.println("DqPageBeanFunctionSet_f9c724af: orig tempbyteArray length: " + tempbyteArray.length);
    if(tempbyteArray != null) {
    pstmt.setBinaryStream(25,new java.io.ByteArrayInputStream(tempbyteArray),tempbyteArray.length);
    else pstmt.setNull(25,java.sql.Types.BLOB);
    Thanks & Regards,
    -Sunitha

    I have similar problem and I solved it using ojdbc14.jar oracle9i version.
    try...

  • Inserting and updating a BLOB field

    Friends I want my application (Oracle is the backend) to look for a character in a BLOB field and then replace it with the desired character.
    Can some one give me some example of retrieving and updating a BLOB field

    Examples are in Oracle Technet: http://otn.oracle.com/
    In this forum I saw also some examples and in your local Oracle Client Installation you find under $ORACLE_HOME$/jdbc/demo/ examples.
    reagrds Dietmar

  • Sending image from MS SQL SERVER to Oracle BLOB

    Hey all, we're trying update Oracle via a SQL Server linked server and we're having an issue with a blob column. The update from SQL is:
    UPDATE Banner..GENERAL.PS_EBI_IF_TBL
    set photo = a.blob_file, photo_change_date=a.blob_date
    from PWNT.dbo.BLOBS a, PWNT.dbo.BADGE_V b
    where a.ID = b.ID
    and base_name = b.BADGE_BASE_NAME
    and b.BADGE_blob_date > getdate()-.021
    GO
    The error we get is:
    OLE DB provider "OraOLEDB.Oracle" for linked server "Banner" returned message "ORA-01747: invalid user.table.column, table.column, or column specification".
    The syntax is correct, we can run it if the column being updated (photo) is not a blob, so we believe there is something else we have to do because of the blob. Has anybody done anything like this and know how it works? Thanks!
    Tom

    Given that there are no version numbers is your post I can imagine many possibilities for misconfiguration. Especially as an Oracle BLOB bears no direct size relationship to anything MS SQL could possibly support.

  • How to connect oracle data through BlazeDS in flex 4

    How to connect oracle data through BlazeDS in flex 4

    Hi
                   If u want to connect to the database oracle just paste the Ojdbc14.jar file into the lib folder of blazeds project..
                             Normally blazeds distribution version contains blazeds.war file... upload that war file to the tomcat or any other application server..
                          u will get the build path and in lib folder paste the ojdbc14.jar file to connect to the oracle and do u r stuff at server side java ....
                      if this will reslove ur problem please mark as answered..

  • Error when Update Oracle database statistics

    HI All,
    Just recent we have upgraded oracle 11 in SAP Landscape. while we are trying to update database statistics through this command
    brconnect -c -u / -f stats -t all -f collect -p 4
    It is throwing following message without completion
    BR0280I BRCONNECT thread 2: time stamp: 2011-09-22 03.17.46
    BR0881I Collecting statistics for table SAPSR3./BEV3/CHASTEU with method/sample
    C ...
    ORA-24550: signal received: Unhandled exception: Code=ebf00baa Flags=0
    Can anyone guide us.
    Thanks.
    PrinceJ

    Have you applied patches to your 11g database?... Theres some info online about ORA-24550 been a know issue and a patch has been released for that...
    Regards
    Juan

  • PHP - Load Gif image into Oracle Blob field - ORA-00972 error

    I am receiving an " ORA-00972 - Identifier Is too Long" error message when I try to update a BLOB field with file contents from a gif file.
    __GIF FILES_:_
    c:\bl\x_PageLayout-4_LA.gif (15K)
    c:\bl\x_PageLayout-4_Spec.gif (21k)
    ===================================================================================================================================
    ORACLE DATABASE (STYLEELEMENTPIX TABLE):*
    STYLE_ID NUMBER
    SEQ_KEY NUMBER
    PIX_NAME VARCHAR2(30 BYTE)
    PIX BLOB
    PIX_LABEL VARCHAR2(30 BYTE)
    MODIFY_DATE DATE
    PIX_TYPE CHAR(1 BYTE)
    DEFAULTDISPLAY CHAR(1 BYTE)
    PIX field currently is null
    ===================================================================================================================================
    PHP CODE:*
    $filename = 'C:\BL\\';
    $filename .= $row->PIX_NAME; //filename of gif ex: c:\bl\x_PageLayout-4_LA.gif
    $fp = fopen($filename, "rb"); //open gif file
    $file_content = fread($fp, filesize($filename)); //read gif file
    //set gif file in PIX field (PIX datatyle BLOB)
    $cursor1 = oci_parse($conn, "UPDATE STYLEELEMENTPIX SET PIX = '$file_content' WHERE STYLE_ID = $row->STYLE_ID AND SEQ_KEY = $row->SEQ_KEY");
    oci_execute ($cursor1);
    For both records, style id will be 100 ($row->STYLE_ID), and seq_key will be 1 for the first record and 2 for the second ($row->SEQ_KEY)
    ===================================================================================================================================
    ERROR MESSAGE:
    Warning: oci_parse() [function.oci-parse]: ORA-00972: identifier is too long in C:\wamp\www\eStyleGuide\Admin\BLOB.php on line 44 ($cursor1 = ....)

    Use a LOB locator. See "Inserting and Updating LOBs" on p 193 of the free book http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html
    A more concerning issue is the security implications of using string concatenation to construct the SQL statement. It is recommended to use bind variables.

  • How to handle Oracle BLOBs with WebLogic 10.3

    We have code that has been running for a long time to handle blobs in Oracle. We have never had a problem running inside of WebLogic, including WLS 10.0 and WLS 11. Recently, we had a customer that had a problem after they upgraded to WLS 10.3. Indeed, we downloaded that specific version and see the same issue. The issue is our Oracle db specific code is now causing an IllegalAccessException after we get the ResultSet vendor obj, by calling getVendorObj() on the WebLogic managed result set, and try to cast to an OracleResultSet. We need to do this in order to call OracleResultSet.getBLOB(), which returns an oracle.sql.BLOB. The code we use to update the blob is shown below. getOracleBLOB is our own method. It basically gets the OracleResultSet by calling getVendorObj on the managed WLS ResultSet, casting to an OracleResultSet, and calling getBLOB(colname) on it. Casting to the OracleResultSet causes the exception shown below. OK, so I understand WLS not wanting us to fiddle with the underlying db ResultSet, but what's our alternative. How can we do this without relying on the underlying OracleResultSet? After 10 years, working with many different versions of WebLogic as well as JBOSS and WebSphere, this is the first time we are seeing this.
    Thanks in advance.
    oracle.sql.BLOB blob = getOracleBLOB(rset,_columns.name);
    OutputStream os = blob.getBinaryOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(os);
    oos.writeObject(_columns[i].paramObj);
    oos.close();
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
         javax.ejb.EJBException: nested exception is: javax.transaction.TransactionRolledbackException: Exception in ejbCreate(): java.lang.IllegalAccessError: tried to access class oracle.jdbc.driver.OracleResultSet from class com.armanta.ejb.gen.DefaultASHelper
         at com.armanta.ejb.gen.DefaultASHelper.getOracleBLOB(DefaultASHelper.java:183)
         at com.armanta.ejb.PreparedStatementWithBlobs.getOracleBLOB(PreparedStatementWithBlobs.java:180)
         at com.armanta.ejb.PreparedStatementWithBlobs.executeUpdate(PreparedStatementWithBlobs.java:141)
         at com.armanta.ejb.SimpleJDBCAbstractionWithBlobs.insert(SimpleJDBCAbstractionWithBlobs.java:57)
         at com.armanta.ejb.ValueContainerBean.create(ValueContainerBean.java:230)
         at com.armanta.ejb.tree.BranchBean.ejbCreate(BranchBean.java:42)
         at com.armanta.ejb.tree.Branch_y1m5sk_Impl.ejbCreate(Branch_y1m5sk_Impl.java:255)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.create(ExclusiveEntityManager.java:775)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.remoteCreate(ExclusiveEntityManager.java:746)
         at weblogic.ejb.container.internal.EntityEJBHome.create(EntityEJBHome.java:272)
         at com.armanta.ejb.tree.Branch_y1m5sk_HomeImpl.create(Branch_y1m5sk_HomeImpl.java:79)
         at com.armanta.ejb.tree.TreeMasterBean.addBranchesToTree(TreeMasterBean.java:430)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl.addBranchesToTree(TreeMaster_n4wp5c_EOImpl.java:800)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    ; nested exception is:
         java.lang.IllegalAccessError: tried to access class oracle.jdbc.driver.OracleResultSet from class com.armanta.ejb.gen.DefaultASHelper
         at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
         at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
         at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl_1030_WLStub.addBranchesToTree(Unknown Source)
         at com.armanta.datamodel.EntityTreePool.addBranchesToTree(EntityTreePool.java:773)
         at com.armanta.app.permission.MemberModel.add(MemberModel.java:233)
         at com.armanta.app.permission.MemberPanel.actionPerformed(MemberPanel.java:248)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.Component.processMouseEvent(Component.java:5517)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
         at java.awt.Component.processEvent(Component.java:5282)
         at java.awt.Container.processEvent(Container.java:1966)
         at java.awt.Component.dispatchEventImpl(Component.java:3984)
         at java.awt.Container.dispatchEventImpl(Container.java:2024)
         at java.awt.Component.dispatchEvent(Component.java:3819)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
         at java.awt.Container.dispatchEventImpl(Container.java:2010)
         at java.awt.Window.dispatchEventImpl(Window.java:1791)
         at java.awt.Component.dispatchEvent(Component.java:3819)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Caused by: javax.ejb.EJBException: nested exception is: javax.transaction.TransactionRolledbackException: Exception in ejbCreate(): java.lang.IllegalAccessError: tried to access class oracle.jdbc.driver.OracleResultSet from class com.armanta.ejb.gen.DefaultASHelper
         at com.armanta.ejb.gen.DefaultASHelper.getOracleBLOB(DefaultASHelper.java:183)
         at com.armanta.ejb.PreparedStatementWithBlobs.getOracleBLOB(PreparedStatementWithBlobs.java:180)
         at com.armanta.ejb.PreparedStatementWithBlobs.executeUpdate(PreparedStatementWithBlobs.java:141)
         at com.armanta.ejb.SimpleJDBCAbstractionWithBlobs.insert(SimpleJDBCAbstractionWithBlobs.java:57)
         at com.armanta.ejb.ValueContainerBean.create(ValueContainerBean.java:230)
         at com.armanta.ejb.tree.BranchBean.ejbCreate(BranchBean.java:42)
         at com.armanta.ejb.tree.Branch_y1m5sk_Impl.ejbCreate(Branch_y1m5sk_Impl.java:255)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.create(ExclusiveEntityManager.java:775)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.remoteCreate(ExclusiveEntityManager.java:746)
         at weblogic.ejb.container.internal.EntityEJBHome.create(EntityEJBHome.java:272)
         at com.armanta.ejb.tree.Branch_y1m5sk_HomeImpl.create(Branch_y1m5sk_HomeImpl.java:79)
         at com.armanta.ejb.tree.TreeMasterBean.addBranchesToTree(TreeMasterBean.java:430)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl.addBranchesToTree(TreeMaster_n4wp5c_EOImpl.java:800)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    ; nested exception is:
         java.lang.IllegalAccessError: tried to access class oracle.jdbc.driver.OracleResultSet from class com.armanta.ejb.gen.DefaultASHelper
         at com.armanta.ejb.tree.TreeMasterBean.addBranchesToTree(TreeMasterBean.java:442)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl.addBranchesToTree(TreeMaster_n4wp5c_EOImpl.java:800)
         at com.armanta.ejb.tree.TreeMaster_n4wp5c_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
         at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    We ultimately found out what the issue was. Turns out that OracleResultSet moved from oracle.jdbc.driver into oracle.jdbc starting with ojdbc6.jar. We were referencing the oracle.jdbc.driver package.

  • Problem with updating oracle DB with java date thru resultset.updateDate()

    URGENT Please
    I am facing problem in updating oracle database with java date through resultset.updateDate() method. Can anybody help me please
    following code is saving wrong date value (dec 4, 2006 instead of java date jul 4, 2007) in database:
    ResultSet rs = stmt.executeQuery("SELECT myDate FROM myTable");
    rs.first();
    SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-mm-dd");
    java.util.Date myDate = new Date();
    rs.updateDate("myDate", java.sql.Date.valueOf(sqlFormat.format(myDate)));
    rs.updateRow();

    I believe you should use yyyy-MM-dd instead of yyyy-mm-dd. I think MM stands for month while mm stands for minute as per
    http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
    (If this works, after spending so much of your time trying to solve it, don't hit yourself in the head too hard. I find running out of the room laughing hysterically feels better).
    Here is a more standard(?) way of updating:
    String sqlStatement=
    "update myTable set myDate=? where personID=?"
    PreparedStatement p1= connection.prepareStatement(sqlStatement);
    p1.setDate(1,new java.sqlDate());
    p1.setInt(2, personID);
    p1.executeUpdate();

  • About update a blob via JDBC

    I want to update a blob value via jdbc.
    The following is my program(part)
    1)String sqlstr = "SELECT * FROM test WHERE vchar='anyone' ";
    2)ResultSet rset = stmt.executeQuery(sqlstr);
    3)BLOB blob = ((OracleResultSet)rset).getBLOB(2);
    4)OutputStream outstream = blob.getBinaryOutputStream();
    when excute the line
    #5)outstream.write(...);
    A IOException throwed. And said "row containing the LOB value is not locked"
    So I change the sqlstr value as
    sqlstr = "SELECT * FROM test WHERE vchar='B' FOR UPDATE";
    Then ,when I restart the programe,it stoped at the line 2) and nothing tell me.
    Just one thing I can do is ctrl-c to corrupt
    it.
    Can you tell me how to resolve it.
    thank you.
    null

    Please take a look at this: http://technet.oracle.com/sample_code/tech/java/sqlj_jdbc/sample_code_index.htm
    You must do
    select ... for update;
    even before you manipulate LOB's.

  • Oracle BLOB insert problem

    I'm getting a ClassCastException when I try to the blob I get from my CallableStatment. I've seen alot of post about similar issues with oracle 9 and inserting blobs but I havn't found a solution..
    Here is the few lines that Im doing..
    When I check to see what type of instance this blob is this is what I get in my debugger oracle.sql.BLOB@71d768
    so When I ((BLOB)blob).getBinaryOutputStream() I get the ClassCastException..
    I've tried to get the innermost delegate and a number of other things.. When I try to cast anything to the Oracle type I get the ClassCastException. When i do an instanceof on the blob it isn't an oracle Blob.. So why does the debugger and getClass().getName() tell me it is.. And is the any work around for this..
    Thanks
    Dan
    cstmt.registerOutParameter(6, OracleTypes.BLOB);
                 cstmt.execute();
                 Blob blob = cstmt.getBlob(6);
                           if(blob != null) {
                         writer = new ObjectOutputStream( ((BLOB)blob).getBinaryOutputStream());
                        if (writer != null) {
                        writer.writeObject(bean);
                          writer.flush();
                          writer.close();
                     con.commit();

    Yes, I modified some code that a collegue used in a standalone application.. His solution was using a CLOB.. I just modified my solution to use a CLOB instead of a BLOB(saving a bean as xml instead of the bean object)..
    So i litterally copied his code line for line.. And Im getting the same error. My app is running in tomcat whereas my collegue is using it in a standalon application. I just went thru all lib directories to make sure I only have one copy of the oracle ojdbc14.jar which is in the conf/lib directory of the tomcat server..
    I even moved my table from our oracle9 db to our oracle 10 db and still no luck..
    String beanToXml = xstream.toXML(bean);          
    cstmt.execute();
    oracle.sql.CLOB clob = ((OracleCallableStatement) cstmt).getCLOB(6)
                 if (clob != null) {
                     writer = ((CLOB) clob).getCharacterOutputStream();
                     if (writer != null) {
                       writer.write(beanToXml.toCharArray());
                       writer.flush();
                       writer.close();
                 }

Maybe you are looking for

  • ??MsI G4Ti4600/4400/4200 card??

    Hello, I bought my G4ti4400 card in June 2002, and it stopped working after 3 or so months later.  ;(   Anyways, I'm having it RMAed this week, and I was wondering: How long have you guys had you card without it going screwy? I mean, who has had thei

  • Dispatcher down in Solution Manger 3.2

    Hi all, Dispatcher down in Solution Manager 3.2 on Windows 2003 and Oracle 9.2. I have tried looking up on this forum for a solution, but without success. Below are the dev_disp and dev_w0 files dev_disp trc file: "dev_disp", trc level: 1, release: "

  • Unable to create filesystem (mkfs.ext4) 2TB CentOS 6.5 VM

    All, We have been having trouble creating disk volumes larger than 2TB on CentOS machines in our lab environment that consists of Hyper-V 2012 R2. Today we came a step closer with the help of http://social.technet.microsoft.com/Forums/windowsserver/e

  • Is this offer a fake or why cannot change my abo?

    Is this offer a fake or why cannot change my abo?

  • Can we customize costing Process?

    We have configured costing process at different leave and working fine. However, we have to incorporate additional condition base on location which are. Suppose for basic element system get GL code from element link screen and the cost center take fr