Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SQL对象类型转换为java_Java_Plsql - Fatal编程技术网

将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";
    }
}