1 14 package org.compiere.db; 15 16 import java.sql.*; 17 import javax.sql.RowSet ; 18 19 import oracle.jdbc.*; 20 import oracle.jdbc.rowset.OracleCachedRowSet; 21 22 28 public class DB_Oracle implements CompiereDatabase 29 { 30 33 public DB_Oracle() 34 { 35 } 37 38 private OracleDriver s_driver = new OracleDriver(); 39 40 41 public static final int DEFAULT_PORT = 1521; 42 43 public static final int DEFAULT_CM_PORT = 1630; 44 45 46 private String m_connectionURL; 47 48 52 public String getName() 53 { 54 return Database.DB_ORACLE; 55 } 57 61 public String getDescription() 62 { 63 return s_driver.toString(); 64 } 66 70 public int getStandardPort() 71 { 72 return DEFAULT_PORT; 73 } 75 79 public Driver getDriver() 80 { 81 return s_driver; 82 } 84 96 public String getConnectionURL (CConnection connection) 97 { 98 StringBuffer sb = null; 99 if (connection.isBequeath()) 101 { 102 sb = new StringBuffer ("jdbc:oracle:oci8:@"); 103 } 106 else { 108 sb = new StringBuffer ("jdbc:oracle:thin:@"); 109 if (connection.isViaFirewall()) 111 { 112 sb.append("(DESCRIPTION=(ADDRESS_LIST=") 118 .append("(SOURCE_ROUTE=YES)") 119 .append("(ADDRESS=(PROTOCOL=TCP)(HOST=").append(connection.getFwHost()) 120 .append(")(PORT=").append(connection.getFwPort()).append("))") 121 .append("(ADDRESS=(PROTOCOL=TCP)(HOST=").append(connection.getDbHost()) 122 .append(")(PORT=").append(connection.getDbPort()).append(")))") 123 .append("(CONNECT_DATA=(SERVICE_NAME=").append(connection.getDbName()).append(")))"); 124 } 125 else 126 { 127 sb.append(connection.getDbHost()) 129 .append(":").append(connection.getDbPort()) 130 .append(":").append(connection.getDbName()); 131 } 132 } 133 m_connectionURL = sb.toString(); 134 return m_connectionURL; 135 } 137 141 public boolean supportsBLOB() 142 { 143 return true; 144 } 146 150 public String toString() 151 { 152 StringBuffer sb = new StringBuffer ("DB_Oracle["); 153 sb.append(m_connectionURL) 154 .append("]"); 155 return sb.toString(); 156 } 158 159 160 166 public String convertStatement (String oraStatement) 167 { 168 return oraStatement; 169 } 171 172 173 180 public void setRowID (PreparedStatement pstmt, int pos, Object rowID) throws SQLException 181 { 182 pstmt.setString(pos, rowID.toString()); 184 } 186 193 public Object getRowID (ResultSet rs, int pos) throws SQLException 194 { 195 return rs.getString (pos); 197 } 199 205 public RowSet getRowSet (ResultSet rs) throws SQLException 206 { 207 OracleCachedRowSet rowSet = new OracleCachedRowSet (); 208 rowSet.populate (rs); 209 return rowSet; 210 } 212 213 214 215 219 public static void main (String [] args) 220 { 221 try 223 { 224 System.setProperty("oracle.jdbc.Trace", "true"); 225 DriverManager.registerDriver(new OracleDriver()); 226 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@dev:1521:dev", "compiere", "compiere"); 227 System.out.println("Catalog=" + con.getCatalog()); 228 DatabaseMetaData md = con.getMetaData(); 229 System.out.println("URL=" + md.getURL()); 230 System.out.println("User=" + md.getUserName()); 231 System.out.println("Catalog"); 233 ResultSet rs = md.getCatalogs(); 234 while (rs.next()) 235 System.out.println("- " + rs.getString(1)); 236 System.out.println("Table"); 238 rs = md.getTables(null, "COMPIERE", null, new String [] {"TABLE"}); 239 while (rs.next()) 240 System.out.println("- User=" + rs.getString(2) + " | Table=" + rs.getString(3) 241 + " | Type=" + rs.getString(4) + " | " + rs.getString(5)); 242 System.out.println("Column"); 244 rs = md.getColumns(null, "COMPIERE", "C_ORDER", null); 245 while (rs.next()) 246 System.out.println("- Tab=" + rs.getString(3) + " | Col=" + rs.getString(4) 247 + " | Type=" + rs.getString(5) + ", " + rs.getString(6) 248 + " | Size=" + rs.getString(7) + " | " + rs.getString(8) 249 + " | Digits=" + rs.getString(9) + " | Radix=" + rs.getString(10) 250 + " | Null=" + rs.getString(11) + " | Rem=" + rs.getString(12) 251 + " | Def=" + rs.getString(13) + " | " + rs.getString(14) 252 + " | " + rs.getString(15) + " | " + rs.getString(16) 253 + " | Ord=" + rs.getString(17) + " | Null=" + rs.getString(18) 254 ); 255 256 con.close(); 257 } 258 catch (SQLException ex) 259 { 260 ex.printStackTrace(); 261 } 262 } } | Popular Tags |