import java.sql.*;
import java.io.FileInputStream;
import java.util.Properties;
class jdbcSelectObj {
  public static void main (String args []) throws Exception {
   Connection conn = getConn();  // unten rausgescrollt
   Statement stmt = conn.createStatement();
   ResultSet rset =
     stmt.executeQuery("SELECT * FROM " + args[0]);
   ResultSetMetaData rsetmetadata = rset.getMetaData();
   int numCols = rsetmetadata.getColumnCount();
   while (rset.next()) {
    for(int i=1; i<=numCols; i++) {
     Object value = rset.getObject(i);
     if (rset.wasNull()) System.out.print("null  ");
     else if (value instanceof oracle.sql.STRUCT)
     { System.out.print("(" +
         ((oracle.sql.STRUCT)value).getSQLTypeName() + ": ");
       Object[] attributes =
         ((oracle.sql.STRUCT)value).getAttributes();
       // attributes
       for (int j = 0; j < attributes.length; j++)
            System.out.print(attributes[j] + "  ");
       System.out.print(")");
     }
     else System.out.print(value + "  "); }
    System.out.println();  }
   rset.close(); stmt.close(); conn.close();  }
 private static Connection getConn() throws Exception
  {
   DriverManager.registerDriver(new
         oracle.jdbc.driver.OracleDriver());
   Properties props = new Properties();
   props.load(new FileInputStream("conn.props"));
   Connection conn = DriverManager
     .getConnection(props.getProperty("url"), props);
   return conn;
 }}
