Oracle Type Mapping
Oracle TypeMappingメモ
テーブルにタイプ形式をマッピングする。その際にタイプ形式にはJavaオブジェクトなどをリンクさせる
Javaオブジェクトを作成
SQLDataインターフェースを実装して作成
import java.io.*;
import java.sql.*;
public class Person implements SQLData {
private String _type = "hoge.PERSON_T";
public int id;
public String name;
public String getSQLTypeName() throws SQLException {
return this._type;
}
public void readSQL(SQLInput in,String typeName) throws SQLException {
this._type = typeName;
this.id = in.readInt();
this.name = in.readString();
}
public void writeSQL(SQLOutput out) throws SQLException {
out.writeInt(this.id);
out.writeString(this.name);
}
}
JavaオブジェクトをOracleにロード
loadjava -u hoge/hoge -r -f -v Person.class
タイプを作成
CREATE TYPE PERSON_T AS OBJECT EXTERNAL NAME "Person" LANGUAGE JAVA USING SQLDATA (
id number(10) external name "id",
name varchar2(100) external name "name"
);
テーブルを作成
作成する際にタイプを指定する
CREATE TABLE PERSON_OBJTBL of PERSON_T;