2

我在 oracle 包中有复杂的程序,具有复杂的输入/输出参数。我将在下面展示我的程序之一:

 PROCEDURE Authorize(PO_ErrorCode         OUT NUMBER,
                     PO_ErrorText         OUT VARCHAR2,
                     PI_Count             IN NUMBER,
                     PI_Setting           IN Setting,
                     PI_InputData         IN InputData,
                     PO_PreData           OUT InputData);

并将显示两个结构SettingInputData以下内容:

CREATE OR REPLACE TYPE Setting as object( ProviderType  NUMBER
                                          SwitchCode    NUMBER)

CREATE OR REPLACE TYPE Input_Data Is Table Of MainInputData;

CREATE OR REPLACE TYPE MainInputData as object( itemId            NUMBER,
                                                itemValue         NVARCHAR2(150),
                                                itemEncyptd       NUMBER,
                                                itemEncryptKey    RAW(16));

通过上面的描述,我有几个结构包含:TypeArray和。Array of TypeArray of Primitive

jdbc我通过oracle 驱动程序和相关类(例如STRUCT&)调用此函数,ARRAY但为此目标生成了许多复杂的代码。

我的问题是:是否有实用程序或框架可以通过简单的代码来完成这项任务?我知道spring有一个 jdbc 实用程序,但我没有使用它的经验。

4

2 回答 2

2

您可以使用弹簧实用程序。

有一个类,您可以在其中使用andStoredProcedure在构造函数中声明所有输入和输出参数及其类型。sqlOutParametersqlInParameter

在您的情况下,有 3 个输入参数,要传递它,您可以execute 使用 3 个参数覆盖方法并调用

super.execute(a,b,c)

这个链接会很有帮助。

于 2012-10-21T12:14:28.603 回答
1

我们有内部实用程序可以完全满足您的需求。它生成:

  • 基于s 并使用特定注释Oracle Object Type扩展的JPA 实体。eclipselink
  • 反映 PL/SQL 包的 Java 接口。

在运行时,eclipselink 将实体实例转换为java.sql.Struct实例,并且对生成的 java 接口的调用被我们的运行时拦截,它动态调用 PL/SQL 过程和函数。它还支持 IN/OUT 参数并允许将 PL/SQL 包公开为 Web 服务。它简化了我们拥有大量分层 Oracle 对象类型的开发。我希望它是公开的。如果您对该工具感兴趣,请与我联系。

为此,您还可以使用 Oracle 的jpublisher

于 2013-06-03T15:56:41.853 回答