ORA-29538、ORA-29532、ORA-29913问题解决

问题一:
ERROR at line 1: ORA-29538: Java not installed
解决方法
1.检查有没有安装JAVA组件
select * from v$option t where t.PARAMETER='Java';
如果返回行说明已安装,如果没有返回行,运行Oracle Universal Installer安装JAVA组件
2.如果在第1步返回行,则检查oracle中有没有dbms_java.
select distinct owner,name from dba_source where lower(NAME)='dbms_java';
如果没有返回行,执行第3步
3.在sqlplus下以sys登陆,执行$ORACLE_HOME/javavm/install/initjvm.sql
SQL>@?/javavm/install/initjvm.sql;

问题二:
ERROR at line 1:
ORA-29532: Java call terminated by uncaught Java exception:
java.security.AccessControlException: the Permission (java.io.FilePermission
/home/accmgrctl/src/server read) has not been granted to SQLVIEW. The PL/SQL to
grant this is dbms_java.grant_permission( 'SQLVIEW',
'SYS:java.io.FilePermission', '/home/accmgrctl/src/server', 'read' )
ORA-06512: at "SQLVIEW.PKG_FILE_API", line 1
解决方法:
这是由于oracle用户没有访问那个目录的权限,把源代码入在oracle有权限访问的目录下
或者用以下语句授权
EXEC Dbms_Java.Grant_Permission('oracle_username','java.io.FilePermission', '*','read ');
问题三:
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-00552: internal XAD package failed to load
ORA-06512: at "SYS.ORACLE_LOADER", line 19
解决方法:
这是110202 上的又一新BUG(外部表的读取)
Need to replace the language specific (non-english) kup<lang>.msb file
with the english version.

1. cd $ORACLE_HOME/rdbms/mesg
2. Replace <lang> with your installed languages file.
mv KUP<lang>.msb to KUP<lang>.msb.BAK
3. Copy <us> version over current <lang> copy of kup msb file.
cp kupus.msb to KUP<lang>.msb
4. re-run the select against the external table

我实际的操作过程,就是:

该目录:$ORACLE_HOME/rdbms/mesg 下有两个文件:
kupzhs.msb 和 kupus.msb, 其默认使用了kupzhs.msb
此时,我把kupzhs.msb 重新命名为 kupzhs.msb.bak
之后在测试, OK:
ORA-29532 是指在 Java 类型或资源上执行操作失败。 ORA-29913 是指执行外部操作时出现错误。通常,这些错误会在 Oracle 数据库中执行 Java 代码时发生。 解决这些问题需要进行详细的故障排除,以下是一些可能的原因和解决方法: 1. 检查 Java 类型或资源是否存在且正确配置。可以使用以下命令进行检查: ``` SELECT owner, object_name, object_type FROM all_objects WHERE object_name = '<Java_Object_Name>'; ``` 如果对象不存在,则需要重新创建。如果对象存在但出现错误,则需要检查其配置是否正确。 2. 检查 Java 调用是否正确。确保 Java 调用的参数和方法都正确。可以使用以下命令进行检查: ``` SELECT * FROM all_java_args WHERE object_name = '<Java_Object_Name>'; SELECT * FROM all_java_methods WHERE object_name = '<Java_Object_Name>'; ``` 如果参数或方法不正确,则需要进行修复。 3. 检查 Java 资源是否正确配置。确保 Java 资源的路径和配置都正确。可以使用以下命令进行检查: ``` SELECT * FROM all_java_res WHERE object_name = '<Java_Object_Name>'; ``` 如果资源配置不正确,则需要进行修复。 4. 检查是否存在权限问题。确保当前用户具有执行 Java 代码的权限。可以使用以下命令进行检查: ``` SELECT * FROM dba_role_privs WHERE granted_role = 'JAVAUSERPRIV'; ``` 如果当前用户没有权限,则需要授权。 以上是一些可能的解决方法,具体的解决方法需要根据具体情况而定。如果以上方法都无法解决问题,则需要进一步进行故障排除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值