Oracle Apex 和 java 类

问题描述 投票:0回答:1

我是oracle apex新手,我需要通过oracle apex数据库存储过程调用java类,但我不知道如何做到这一点,有任何线索吗?

如果可能的话,有一个关于如何执行此操作的“逐步”链接会很棒,在 apex 本身内部的数据库上工作并不那么容易,这就是为什么我需要所需步骤的详细描述。

调用java类对于我们的项目是强制性的,我们无法避免。

谢谢,

java oracle oracle-apex-5
1个回答
0
投票

数据库中的 Java 类由 PL/SQL 层包装,因此调用 Java 类(来自 APEX)与调用 PL/SQL 过程没有什么不同,例如

SQL> create or replace and compile
  2  java source named "demo_passing_pkg"
  3  as
  4  import java.io.*;
  5  import java.sql.*;
  6  import java.math.*;
  7  import oracle.sql.*;
  8  import oracle.jdbc.driver.*;
  9
 10  public class demo_passing_pkg extends Object
 11  {
 12
 13  public static void pass( java.lang.String[] p_str, java.lang.Double[] p_num )
 14  {
 15          p_str[0] = p_str[0] + "Hello World";
 16          p_num[0] = new Double( 55 );
 17  }
 18
 19  }
 20  /
 
Java created.

SQL> create or replace package demo_passing_pkg
  2  as
  3      procedure pass( p_string in out varchar2, p_double in out number )
  4      as
  5      language java
  6      name 'demo_passing_pkg.pass( java.lang.String[], java.lang.Double[] )';
  7
  8  end demo_passing_pkg;
  9  /
 
Package created.
 
 
SQL> variable s varchar2(255)
SQL> variable n number
SQL> set autoprint on
SQL> exec :s := 'test '; :n := 42;
 
PL/SQL procedure successfully completed.
 
 
         N
----------
        42
 
 
S
-------------------------------------------------------------------------------
test
 
SQL> exec demo_passing_pkg.pass( :s, :n )
 
PL/SQL procedure successfully completed.
 
 
         N
----------
        55
 
 
S
-------------------------------------------------------------------------------
test Hello World
© www.soinside.com 2019 - 2024. All rights reserved.