Oracle Apex和Java类

eulz3vhy  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(149)

我是新的oracle顶点,我需要调用java类通过oracle顶点数据库存储过程,但我不知道如何做到这一点,任何线索?
有一个关于如何做到这一点的“一步一步”的链接将是伟大的,如果可能的话,它不是那么容易在数据库内的顶点本身的工作,这就是为什么我需要一个所需步骤的详细说明。
调用java类对我们的项目来说是强制性的,我们无法避免。
谢谢,

5cg8jx4n

5cg8jx4n1#

数据库中的Java类由PL/SQL层 Package ,因此调用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

字符串

相关问题