1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
Create or replace type obj1 as object ( m1 varchar2(10 ) ) ;
create or replace type obj2 as object ( m2a varchar2(10), m2b obj1 ) ;
create table tbl2 ( col21 number, col22 obj2 ) ;
insert into tbl2 values(1,obj2('mmmmm2',obj1('XXXXX') ) ) ;
select col21, col22 from tbl2;
COL21 COL22(M2A, M2B(M1))
---------- ------------------------
1 OBJ2('mmmmm2', OBJ1('XXXXX')
// en java :
sql="select col21, col22 from sys.tbl2" ;
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rset = stmt.executeQuery(sql);
Object[] object1Values ;
Object[] object1ValuesCol22 ;
while (rset.next()){
Integer i = rset.getInt(1);
String s=i.toString();
oracle.sql.STRUCT object1 = (oracle.sql.STRUCT)rset.getObject(2);
object1Values = object1.getAttributes();
String s1= object1Values[0].toString();
object1ValuesCol22=((oracle.sql.STRUCT)object1Values[1]).getAttributes() ; // fafut positioner soit meme l'indice ou l'on va faire le cast. Moche
String s2 = (String)object1ValuesCol22[0];
System.out.println("s1=" + s1 + " S2=" + s2);
}
//output
s1=mmmmm2 S2=XXXXX |
Partager