Inserting an OBJECT Value into an Oracle Table Using a Prepared Statement

This example inserts Oracle OBJECTs into an Oracle table using a prepared statement. The example uses the OBJECT types and table created in 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) {
}

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.