将PL SQL对象类型转换为Java

时间:2018-10-31 04:32:13

标签: java plsql

我想将plsql对象类型传递传递给Java。 Java将获得此对象,修改后,我想将同一对象传递回plsql。 主程序将从plsql调用Java,而从Java返回的预期结果是到达plsql上的同一对象。我可以知道是否有去吗? 以下是我正在尝试的代码。 是否可以像输入和输出参数一样直接将plsql对象类型键入Java方法/函数? 我试图通过Struct传递plsql对象类型,它可以编译程序。但是,我不知道java如何接受该对象并将其转换为java对象。

类似下面的示例。非常感谢

PL / SQL对象类型

CREATE OR REPLACE TYPE Address AS OBJECT
( street VARCHAR2(30),
   city VARCHAR2(20)
);

调用Java程序的PL / SQL包

create or replace package body TYPE_ADD_TEST is
FUNCTION Test_ADD(in_address IN address
                ) RETURN address IS
LANGUAGE JAVA
NAME 'TestPrg.TestAddress(java.sql.Struct
                   ) return java.sql.Struct';
end TYPE_ADD_TEST;

Java代码

create or replace and compile java source named testprg as
import java.util.*;
import java.io.*;
import java.sql.*;

public class TestPrg{

    public static String TestAddress(Struct TestAddress) {

        Address testAdd = (Address) TestAddress; 
        // Address testAdd = new Address("s","c"); 
        return testAdd.street;
    }

}

Java对象类

create or replace and compile java source named address as
import java.util.*;
import java.io.*;

public class Address {

    public String street ;
    public String city;  
    public Address() {}
    public Address(String a, String  b) {
        street = "java street";
        city = "java city";
    }
}

非常感谢您

0 个答案:

没有答案