如何正确地从 Oracle 数据库中删除 java 源代码?

VOR*_*AND 3 oracle plsql java

我的 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 的内容)的数据库用户?

非常感谢!

a_h*_*ame 6

名称的每个元素都必须单独引用:

drop java source "SCHEMA"."JAVASOURCENAME";
Run Code Online (Sandbox Code Playgroud)

所述标识符"SCHEMA.JAVASOURCENAME"是指一个Java源名称SCHEMA.JAVASOURCENAME当前架构,例如"VORIAND"."SCHEMA.JAVASOURCENAME"