Obtenir du contenu de classe java à partir de la base de données oracle


Est-il possible d'obtenir le fichier java .class à partir d'une base de données?
Je veux dire les classes java, qui ont été chargées via l'outil loadjava avec les paramètres -r -s -v -g.

Comment faire cela?

Modifier: J'en ai besoin sous forme lisible;)

Author: rzysia, 2015-04-30

2 answers

Jetez un oeil à la DBMS_JAVA package.
Avec DBMS_JAVA vous pouvez exporter les .java et .class fichiers, en utilisant:

  • export_source - pour exporter .java fichier

    PROCEDURE export_source(name VARCHAR2, schema VARCHAR2, blob BLOB)
    PROCEDURE export_source(name VARCHAR2, blob BLOB)
    PROCEDURE export_source(name VARCHAR2, clob CLOB)
    
  • export_class - pour exporter .class fichier

    PROCEDURE export_class(name VARCHAR2, schema VARCHAR2, blob BLOB)
    PROCEDURE export_class(name VARCHAR2, blob BLOB)
    

Ici, vous pouvez trouver quelques exemples sur la façon de l'utiliser pour lire la source de .java fichiers.

 3
Author: npe, 2015-04-30 17:27:03

J'ai eu le même problème, mais après quelques recherches sur google je le résoudre. Probablement aidera quelqu'un. Juste un exemple

DECLARE 
 b CLOB;
 c varchar2(2000);
 i integer:= 255;
begin
  DBMS_LOB.createtemporary(b, false);
  DBMS_JAVA.export_resource('<object_name>', '<schema_name>', b);
  DBMS_OUTPUT.PUT_LINE('java_resource:');
  DBMS_LOB.read(b, i, 1, c);
  DBMS_OUTPUT.PUT_LINE(c);
end;
 0
Author: adimoise91, 2018-04-18 12:36:51