我想从一个oracle数据库使用下面的代码导出java对象的源代码。试图从Oracle数据库导出java源代码
DECLARE
blob1 BLOB;
BEGIN
DBMS_LOB.CREATETEMPORARY(blob1, FALSE);
DBMS_JAVA.EXPORT_SOURCE('OBJECTNAME', 'SCHEMANAME', blob1);
END;
每当我尝试运行它,我得到这个异常:
oracle.aurora.rdbms.ModifyPermissionException
即使我运行的系统。任何想法是什么导致这种情况,以及如何让这个工作。
调查了一下后,它以sysdba身份运行,并且还以拥有对象的用户身份运行。不幸的是,我正在制作一个程序来转储Oracle数据库中的java对象,并且我无法强制我的用户成为sysdba或对象的所有者。
有什么办法可以阻止这个错误?
你可能已经尝试过授予execute,对吗?我似乎记得有系统无法运行proc的问题,因为他们没有exec权限。似乎很奇怪,但我知道它偶尔会发生。 – MJB 2010-03-18 16:26:12
我这么认为,尽管这是可能的,但我错了。事情似乎是执行DBMS_JAVA.EXPORT_SOURCE,但通过运行EXPORT_SOURCE过程获取异常部分。 – Lionel 2010-03-18 16:34:36
如果你做了这样的事情,你可能是正确的: SQL> connect sys/password SQL>将dbms_java上的执行授予系统; SQL>连接系统/密码 SQL> @script(运行你的脚本) – MJB 2010-03-18 16:57:47