我的 Java 源代码有点卡在这里。首先我想从数据库中完全删除它,因为我想重新编译它,但我不能删除它,因为如果我执行这个命令:
drop java source "SCHEMA.JAVASOURCENAME";
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ORA-04043: object JAVASOURCENAME does not exist
Run Code Online (Sandbox Code Playgroud)
Javasource 本身具有这种结构(这是它的 plsql/java 代码):
create or replace and compile java source named myjavasource as
import java.io.*;
import some.custom.jar.one.*;
import some.custom.jar.two.*;
import some.custom.jar.three.*;
public class MyJavaClass
{
public static String myjavafunction(String connectString, String identity, String password)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我以 DBA 身份和我的用户执行了这个“创建或替换和编译 java 源代码...”命令,我不知道这是否可能是问题所在。
所以我的问题是,我怎样才能删除这个 java 源代码?
我的第二个问题是我可以处理自定义 jars 吗?我用这个命令导入了它们:
call dbms_java.loadjava('-genmissing -r -v -force -grant SCHEMA ./some.custom.jar.one.jar');
Run Code Online (Sandbox Code Playgroud)
我还以 DBA 身份和我的用户执行了此操作。如果是检查无效对象:
SELECT *
FROM user_objects
WHERE object_type like '%JAVA%'
AND status = 'INVALID'
Run Code Online (Sandbox Code Playgroud)
作为 DBA,我认为整个世界都是无效的(很多 Java 类),但是当我以用户身份进行检查时,我只能在无效列表中获取 javasource 和 java 类名(我认为它需要更多外部 jar,我可以做到的)现在找不到)。
那么,为什么无效的 Java 对象列表与 DBA 和用户不同?我是否需要执行 Java 源代码创建和 jar 导入作为 DBA(并且仅与 DBA),或者如果我想与所有模式用户一起使用它(java 功能,使用外部 jars 的内容)的数据库用户?
非常感谢!
名称的每个元素都必须单独引用:
drop java source "SCHEMA"."JAVASOURCENAME";
Run Code Online (Sandbox Code Playgroud)
所述标识符"SCHEMA.JAVASOURCENAME"
是指一个Java源名称SCHEMA.JAVASOURCENAME
在当前架构,例如"VORIAND"."SCHEMA.JAVASOURCENAME"
归档时间: |
|
查看次数: |
12950 次 |
最近记录: |