Summary of Oracle Java Stored Procedure

深入理解Oracle Java存储过程
本文详细介绍了Oracle Java存储过程的概述、配置、步骤及核心概念,包括如何使用Java类创建存储过程,如何配置数据库以运行Java存储过程,以及如何在数据库中加载和发布Java存储过程。文章还提供了创建、加载和调用Java存储过程的步骤,以及它们之间的相互作用。

 

1. Overview of Oracle Java Stored Procedure

Java is an object-oriented programming language efficient for application-level programs. Oracle provides all types of JDBC drivers and enhances database access from Java applications. Java Stored Procedures are portable and secure in terms of access control, and allow non-Java and legacy applications to transparently invoke Java.

Stored procedures are Java methods published to SQL and stored in the database for general use. To publish Java methods, you write call specifications, which map Java method names, parameter types, and return types to their SQL counterparts.

When called by client applications, a stored procedure can accept arguments, reference Java classes, and return Java result values. Figure 1-1 shows a stored procedure being called by various applications.

 


 

2. Java Stored Procedure Configuration

To configure the database to run Java stored procedures, you must decide on which of the following modes the database should run:

■ Dedicated server mode

You must configure the database and clients in dedicated server mode using Oracle Net Services connections.

■ Shared server mode

You must configure the server for shared server mode with the DISPATCHERS parameter.

Java, SQL, or PL/SQL clients, which run Java stored procedures on the server, connect to the database over an Oracle Net Services connection.

3. Java Stored Procedures Steps

You can run Java stored procedures in the same way as PL/SQL stored procedures. Normally, a call to a Java stored procedure is a result of database manipulation, because it is usually the result of a trigger or SQL DML call. To call a Java stored procedure, you must publish it through a call specification.

Before you can call Java stored procedures, you must load them into the Oracle Database instance and publish them to SQL. Loading and publishing are separate tasks. Many Java classes, which are referenced only by other Java classes, are never published.

To load Java stored procedures automatically, you can use the loadjava command-line utility. It loads Java source, class, and resource files into a system-generated database table, and then uses the SQL CREATE JAVA {SOURCE | CLASS | RESOURCE} statement to load the Java files into the Oracle Database instance. You can upload Java files from file systems, popular Java IDEs, intranets, or the Internet.

The following steps are involved in creating, loading, and calling Java stored procedures:

 

Step 1: Create or Reuse the Java Classes

import java.math.BigDecimal;

 

public class Paymaster {

                public static BigDecimal wages(BigDecimal  sal, BigDecimal comm) throws java.sql.SQLException {

                                BigDecimal pay = sal;

                                if (comm != null)

                                                pay = pay.add(comm);

                                return pay;

                }

}

 

Save the class as Oscar.java. Using a Java compiler(For Oracle 11g, the version of Java should be 1.5), compile the .java file on your client system, as follows:

javac Oscar.java

The compiler outputs a Java binary file, in this case, Oscar.class.

In a call specification, the corresponding SQL and Java parameters and function results must have compatible data types. Table 1–1 lists the legal data type mappings. Oracle Database converts between the SQL types and Java classes automatically.

Table 1–1 Legal Data Type Mappings SQL Type Java Class

CHAR, LONG, VARCHAR2   oracle.sql.CHAR

java.lang.String

java.sql.Date

java.sql.Time

java.sql.Timestamp

java.lang.Byte

java.lang.Short

java.lang.Integer

java.lang.Long

java.lang.Float

java.lang.Double

java.math.BigDecimal

byte, short, int, long, float, double

DATE                 oracle.sql.DATE

java.sql.Date

java.sql.Time

java.sql.Timestamp

java.lang.String

NUMBER               oracle.sql.NUMBER

java.lang.Byte

java.lang.Short

java.lang.Integer

java.lang.Long

java.lang.Float

java.lang.Double

java.math.BigDecimal

byte, short, int, long, float, double

OPAQUE               oracle.sql.OPAQUE

RAW, LONG RAW         oracle.sql.RAW

byte[]

ROWID                oracle.sql.CHAR

oracle.sql.ROWID

java.lang.String

BFILE                oracle.sql.BFILE

BLOB                 oracle.sql.BLOB

oracle.jdbc2.Blob

CLOB, NCLOB oracle.sql.CLOB

oracle.jdbc2.Clob

OBJECT               oracle.sql.STRUCT

Object types                            java.sql.Struct

java.sql.SqlData

oracle.sql.ORAData

REF                  oracle.sql.REF

Reference types                       java.sql.Ref

oracle.sql.ORAData

TABLE, VARRAY         oracle.sql.ARRAY

Nested table types                                  

and VARRAY types oracle.sql.ORAData

java.sql.Array

any of the preceding SQL   oracle.sql.CustomDatum

types                                        oracle.sql.Datum

 

Step 2: Load and Resolve the Java Classes

Using the loadjava utility, you can load Java source, class, and resource files into an Oracle Database instance, where they are stored as Java schema objects. You can run loadjava from the command line or from an application, and you can specify several options including a resolver.


Step 3: Publish the Java Classes


 

Step 4: Call the Stored Procedures

 


 

More introductions could be found in Oracle Database Java Developer’s Guide.pdf 

 

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制方法。通过结合数据驱动技术与Koopman算子理论,将非线性系统动态近似为高维线性系统,进而利用递归神经网络(RNN)建模并实现系统行为的精确预测。文中详细阐述了模型构建流程、线性化策略及在预测控制中的集成应用,并提供了完整的Matlab代码实现,便于科研人员复现实验、优化算法并拓展至其他精密控制系统。该方法有效提升了纳米级定位系统的控制精度与动态响应性能。; 适合人群:具备自动控制、机器学习或信号处理背景,熟悉Matlab编程,从事精密仪器控制、智能制造或先进控制算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①实现非线性动态系统的数据驱动线性化建模;②提升纳米定位平台的轨迹跟踪与预测控制性能;③为高精度控制系统提供可复现的Koopman-RNN融合解决方案; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注Koopman观测矩阵构造、RNN训练流程与模型预测控制器(MPC)的集成方式,鼓励在实际硬件平台上验证并调整参数以适应具体应用场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值