Showing posts with label loadjava. Show all posts
Showing posts with label loadjava. Show all posts

Monday, October 22, 2012

How to export java class or java resource from Oracle database

If you need to export java class or java resource loaded to Oracle database with loadjava use this:

1) get fully qualified name of a class/resource:


SELECT DBMS_JAVA.longname (object_name), user_objects.*
  FROM SYS.user_objects
 WHERE object_type IN ('JAVA CLASS', 'JAVA RESOURCE')

2) use DBMS_JAVA.export_resource or DBMS_JAVA.export_resource accordingly. This example outputs first 4000 chars only but you get the idea once you have the BLOB:

DECLARE
   v_blob      BLOB;
   stringvar   VARCHAR2 (4000);
BEGIN
   DBMS_LOB.createtemporary (v_blob, TRUE, DBMS_LOB.SESSION);

   --dbms_java.export_class( 'com/mysource/MyClass', v_Blob ) ;

   DBMS_JAVA.export_resource ('resources/resource.xml', v_blob);
   stringvar := UTL_RAW.cast_to_varchar2 (DBMS_LOB.SUBSTR (v_blob, 4000, 1));
   DBMS_OUTPUT.put_line (stringvar);
END;

oracle loadjava error: Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x8077E76

After installing latest updates for Windows 7 64-bit recently, I've found out Oracle's loadjava is now giving me this error:



Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x8077E76
Function=[Unknown.]
Library=C:\oracle\product\10.2.0\client_1\jdk\jre\bin\client\jvm.dll

...

Current Java thread:
at oracle.jdbc.driver.T2CConnection.t2cCreateState(Native Method)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:346)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:131)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:77)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
- locked <0x141ae388> (a java.lang.Class)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
- locked <0x141ae388> (a java.lang.Class)
at oracle.aurora.server.tools.loadjava.DatabaseOptions.getConnection(DatabaseOptions.java:180)
at oracle.aurora.server.tools.loadjava.DatabaseOptions.connect(DatabaseOptions.java:123)
at oracle.aurora.server.tools.loadjava.LoadJavaState.getConnection(LoadJavaState.java:409)
at oracle.aurora.server.tools.loadjava.LoadJavaState.getOldMD5(LoadJavaState.java:696)
at oracle.aurora.server.tools.loadjava.ClientSchemaObject.getOldMD5(ClientSchemaObject.java:52)
at oracle.aurora.server.tools.loadjava.SchemaObject.doCreate(SchemaObject.java:172)
at oracle.aurora.server.tools.loadjava.SchemaObject.process1(SchemaObject.java:215)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:532)
at oracle.aurora.server.tools.loadjava.LoadJava.addObject(LoadJava.java:513)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:451)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:380)
at oracle.aurora.server.tools.loadjava.LoadJava.addJar(LoadJava.java:727)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:432)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:380)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:349)
at oracle.aurora.server.tools.loadjava.LoadJava.add(LoadJava.java:652)
at oracle.aurora.server.tools.loadjava.LoadJava.processDeferredFiles(LoadJava.java:617)
at oracle.aurora.server.tools.loadjava.LoadJava.process(LoadJava.java:818)
at oracle.aurora.server.tools.loadjava.LoadJava.command(LoadJava.java:251)
at oracle.aurora.server.tools.loadjava.LoadJavaMain.run(LoadJavaMain.java:103)
at oracle.aurora.server.tools.loadjava.LoadJavaMain.main(LoadJavaMain.java:28)

Dynamic libraries:
0x00400000 - 0x0040B000 C:\oracle\product\10.2.0\client_1\jdk\jre\bin\java.exe
0x77C80000 - 0x77E00000 C:\Windows\SysWOW64\ntdll.dll
...

Heap at VM Abort:
Heap
 def new generation   total 576K, used 391K [0x10010000, 0x100b0000, 0x104f0000)
...

#
# HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
# Error ID : 4F530E43505002EF
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_08-b03 interpreted mode)
#

As the solution to this problem I found to be installing Oracle 11g (v. 11.1.0) client instead of existing 10g (v. 10.2.0) one, specifically win32_11gR1_client. Funnily enough, I wasn't even able to quickly find the client distributive on Oracle website so here's the link for you: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098987.html