Tuesday, March 14, 2006

java.sql.Array を使う方法

これはインターフェースなので、java.sql.Connection 同様、JDBC ドライバのベンダから実装を提供してもらわねばならない。

Oracle では、oracle.sql.ARRAY がこのインターフェースの実装になっている。次のようなコードを使う。

oracle.sql.ArrayDescriptor arrayDesc = oracle.sql.ArrayDescriptor.createDescriptor("HOGE_ARRAY", con);
java.sql.Array array = new oracle.sql.ARRAY(arrayDesc, con, new int[] {1,3,5,0});

con は java.sql.Connection である。これは、Oracle のドライバから取得した Connection でなくてはならない。DataSource 等から取得したラッパだと ClassCastException が発生することがある。

HOGE_ARRAY は、Oracle の CREATE TYPE 文でつくった型だ。何故か大文字で指定しなくてはならなかった。

ここでは、整数配列から java.sql.Array をつくっているが、当然、HOGE_ARRAY 型は整数を格納できる配列型として Oracle 側で定義していなくてはならない。

No comments: