2

我的客户希望能够从 Oracle PL/SQL 调用 jar 文件。

Java 1.6、Oracle 11g R2

我该怎么做呢?

4

2 回答 2

2

我对 loadjava(将类加载到 Oracle 中的程序)做了一些研究。听起来像是屁股疼。

所以我选择在 Oracle 之外运行我的 jar,但通过 PL/SQL 从 Oracle DBMS_SCHEDULER 调用。

就是这样:

BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM (
program_name            => 'testjar',
program_type            => 'EXECUTABLE',
program_action          => 'C:\MYSTUFF\testjar.bat',
enabled                 => TRUE,
comments                => 'test testjar'
);
END;
/

begin  
dbms_scheduler.create_job  
 (job_name => 'testjar_job',  
  program_name=> 'testjar',    
  enabled=>true,  
  auto_drop=>false,  
  comments=>'Only run immediately by dbms_scheduler.run_job');  
end; 
/


begin  
    dbms_scheduler.run_job('testjar_job',TRUE);  
end;  
/
于 2013-02-03T22:07:59.020 回答
0

在玩了之后,我发现模式 JAR_NAME.jar///ClassName.methodName(.... 有效。

例如:

Function do()
return String
AS
      LANGUAGE java
         NAME 'my_jar.jar///MyClass.myMethod() return oracle.sql.String';

请注意,似乎某些 jar 名称文件不起作用。例如,我在 jar 中遇到了“-”的问题。

于 2016-04-04T16:46:13.680 回答