// Create a VARRAY type
stmt.execute("CREATE TYPE char_varray AS VARRAY(10) OF VARCHAR(20)");
// Create an OBJECT type
stmt.execute ("CREATE TYPE oracle_object AS OBJECT(column_string VARCHAR(128), column_integer INTEGER)");
StringBuffer sql = new StringBuffer("CREATE TABLE oracle_all_types(");
// Column Name Oracle Type Java Type
sql.append("column_short SMALLINT, "); // short
sql.append("column_int INTEGER, "); // int
sql.append("column_float REAL, "); // float
sql.append("column_double DOUBLE PRECISION,"); // double
sql.append("column_bigdecimal DECIMAL(13,2), "); // BigDecimal
sql.append("column_string VARCHAR2(254), "); // String
sql.append("column_charStream LONG, "); // CharacterStream
sql.append("column_bytes RAW(3000), "); // byte[]
sql.append("column_binarystream RAW(2000), "); // BinaryStream
sql.append("column_timestamp DATE, "); // Timestamp
sql.append("column_clob CLOB, "); // Clob
sql.append("column_blob BLOB, "); // Blob
sql.append("column_bfile BFILE, "); // oracle.sql.BFILE
sql.append("column_array char_varray, "); // oracle.sql.ARRAY
sql.append("column_object oracle_object)"); // oracle.sql.OBJECT
stmt.executeUpdate(sql.toString());
//From Book: JDBC Recipes A Problem-Solution Approach