我是oracle apex新手,我需要通过oracle apex数据库存储过程调用java类,但我不知道如何做到这一点,有任何线索吗?
如果可能的话,有一个关于如何执行此操作的“逐步”链接会很棒,在 apex 本身内部的数据库上工作并不那么容易,这就是为什么我需要所需步骤的详细描述。
调用java类对于我们的项目是强制性的,我们无法避免。
谢谢,
数据库中的 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