2012-02-22 12 views
1

我有一个存储的Java,使用loadjava命令加载到Oracle中。我加载整个jar文件来加载类。java存储过程 - Oracle中的资源文件

除了类文件之外,还有2个资源文件在这里被加载。其中之一是jar清单文件。另一个是我加载的.properties文件。我使用这个文件来控制存储过程中的日志记录级别。我可以看到资源文件通过从USER_OBJECTS中选择使用,

SELECT * FROM user_objects WHERE object_type = 'JAVA RESOURCE'; 

但是我看不到内容。我不是DBA,所以我让我的DBA朋友查看数据库。他可以看到蟾蜍中的物体,但看不到内容。 (Funnily足够蟾蜍甚至没有对象类型“JAVA资源”)。

有什么方法可以查看Java资源文件中的实际文本吗?感谢您的任何意见或建议。

山姆

回答

1

你可能想看看这些观点

ALL_JAVA_ARGUMENTS 
ALL_JAVA_CLASSES 
ALL_JAVA_DERIVATIONS 
ALL_JAVA_FIELDS 
ALL_JAVA_IMPLEMENTS 
ALL_JAVA_INNERS 
ALL_JAVA_LAYOUTS 
ALL_JAVA_METHODS 
ALL_JAVA_NCOMPS 
ALL_JAVA_RESOLVERS 
ALL_JAVA_THROWS 
ALL_SOURCE (contains the actual source code) 

的链接:

http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2063.htm

http://docstore.mik.ua/orelly/oracle/guide8i/ch09_06.htm

+1

谢谢你的回应,谢尔盖。上面的视图很好地检查Java类。这些人似乎都没有关于Java资源的任何信息。我只想看到刚加载的属性文件的“内容”。幸运的是,我发现了一个广泛涉及DBMS_JAVA包的链接,并且它有一个示例,使用包中的EXPORT ...过程显示各种java对象的内容。 [link](http://examples.oreilly.com/9780596514464/Chapters_27and28_OPLSQL5e.pdf) – SamV 2012-02-23 17:29:57

1

link,我贴在我的评论,显示使用过程的示例。这里是我的匿名块显示资源文件的内容,基于他们的例子:

SET SERVEROUTPUT ON 
EXEC DBMS_JAVA.SET_OUTPUT (1000000); 

DECLARE 
b CLOB; 
i INTEGER; 
v VARCHAR2(2000); 
BEGIN 
    DBMS_LOB.createtemporary(b, FALSE); 
    DBMS_JAVA.EXPORT_RESOURCE('LAJavaSP.properties', b); 
    i := 1000; 
    DBMS_lob.read(b, i, 1, v); 
    DBMS_OUTPUT.put_line(v); 
END; 
/