This example inserts Oracle OBJECTs into an Oracle table using a prepared statement. The example uses the OBJECT types and table created in e296 Creating an OBJECT Type in an Oracle Database.
try {
// Create an oracle.sql.STRUCT object to hold the values for object2
Object[] object2Values = new Object[]{"str", new BigDecimal(123)};
oracle.sql.StructDescriptor structDesc =
oracle.sql.StructDescriptor.createDescriptor("OBJECT2", connection);
oracle.sql.STRUCT object2 =
new oracle.sql.STRUCT(structDesc, connection, object2Values);
// Create an oracle.sql.STRUCT object to hold the values for object1
Object[] object1Values = new Object[]{"str", object2};
structDesc = oracle.sql.StructDescriptor.createDescriptor("OBJECT1", connection);
oracle.sql.STRUCT object1 =
new oracle.sql.STRUCT(structDesc, connection, object1Values);
// Create a prepared statement for insertion into object1_table
PreparedStatement ps =
connection.prepareStatement("INSERT INTO object1_table VALUES(?,?)");
// Set the values to insert
ps.setInt(1, 123);
ps.setObject(2, object1);
// Insert the new row
ps.execute();
} catch (SQLException e) {
}