将SQL对象类型转换为java
我想将将SQL对象类型转换为java,java,plsql,Java,Plsql,我想将plsql对象类型传递给Java。Java将获得这个对象,在修改之后,我想将相同的对象传递回plsql。 主程序将从plsql调用Java,期望从Java返回的结果是plsql处的同一个对象。我能知道有没有什么好办法吗? 下面是我正在尝试的代码。 plsql对象类型是否可以作为in和out参数直接指向java方法/函数? 我尝试用Struct传递plsql对象类型,它可以编译程序。但是,我不知道java如何接受这个对象并将其转换为java对象 类似于下面的示例。多谢各位 PL/SQL对象类
plsql
对象类型传递给Java。Java将获得这个对象,在修改之后,我想将相同的对象传递回plsql
。
主程序将从plsql
调用Java,期望从Java返回的结果是plsql
处的同一个对象。我能知道有没有什么好办法吗?
下面是我正在尝试的代码。
plsql对象类型是否可以作为in和out参数直接指向java方法/函数?
我尝试用Struct传递plsql对象类型,它可以编译程序。但是,我不知道java如何接受这个对象并将其转换为java对象
类似于下面的示例。多谢各位
PL/SQL对象类型
调用java程序的PL/SQL包
Java代码
Java对象类
非常感谢您想阅读本文:-在第15页左右,他讨论了如何创建可以与Oracle(extend SQLData)交换的Java类,或者如何仅使用Struct:Structs有一个getAttributes()方法,该方法返回属性值数组。非常感谢您提供的信息。我更改了java代码和java对象类。getAttributes()方法可以在java方法中获取plsql的对象值。仍在努力将java对象类型直接作为out参数传递回plsql。
CREATE OR REPLACE TYPE Address AS OBJECT
( street VARCHAR2(30),
city VARCHAR2(20)
);
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;
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;
}
}
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";
}
}