在 "CREATE OR REPLACE AND COMPILE JAVA" 语句中转义分号

Escape semi colon in "CREATE OR REPLACE AND COMPILE JAVA" statement

我正在尝试在 Navicat 中执行以下语句,

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED util
AS
import java.io.IOException;

public class Util
{
    public static String exec(String cmd) throws IOException
    {
        Runtime.getRuntime().exec(cmd);
        return "";
    }
}

但是由于 ; 在 SQL 查询中被视为分隔符,查询变得“不完整”并导致错误:

那么如何在 Navicat 中执行这条语句呢?

将命令存储为字符串并使用匿名 PL/SQL 块动态执行它:

begin
    execute immediate
    '
        CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED util
        AS
        import java.io.IOException;

        public class Util
        {
            public static String exec(String cmd) throws IOException
            {
                Runtime.getRuntime().exec(cmd);
                return "";
            }
        }
    ';
end;
/

理解 Java 语法的 Oracle IDE 不多,但我认为几乎所有 IDE 都可以使用 PL/SQL 块。