📄 testreplicationwriter.java
字号:
* @param info The configuration * @return The created pool */ private DbPool setUpDbPool(I_Info info) { DbPool dbPool = new DbPool(); dbPool.init(info); info.putObject("db.pool", dbPool); return dbPool; } /* * @see TestCase#tearDown() */ protected void tearDown() throws Exception { super.tearDown(); if (dbSpecific != null) { dbSpecific.shutdown(); dbSpecific = null; } if (this.replicationWriter != null) { this.replicationWriter.shutdown(); this.replicationWriter = null; } if (this.dbPool != null) { this.dbPool.shutdown(); this.dbPool = null; } } public void testCreateSeq1() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CHAR' precision='10' nullable='0' sqlType='1' colSize='10' radix='10' charLength='10' pos='1' label='ONE' typeName='CHAR' caseSens='true' pk='true' pkName='SYS_C007059' dataType='CHAR'>ONE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='5' nullable='0' sqlType='12' colSize='5' radix='10' charLength='5' pos='2' label='TWO' typeName='VARCHAR2' caseSens='true' pk='true' pkName='SYS_C007059' dataType='VARCHAR'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='30' nullable='1' sqlType='12' colSize='30' radix='10' charLength='30' pos='3' label='THREE' typeName='VARCHAR2' caseSens='true' dataType='VARCHAR'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NCHAR' precision='30' nullable='1' sqlType='1111' colSize='60' radix='10' charLength='60' pos='4' label='FOUR' typeName='CHAR' caseSens='true' dataType='OTHER'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NCHAR' precision='20' nullable='1' sqlType='1111' colSize='40' radix='10' charLength='40' pos='5' label='FIVE' typeName='CHAR' caseSens='true' dataType='OTHER'>FIVE</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>1</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq1", message, this.tableName); } public void testCreateSeq2() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='LONG' precision='2147483647' nullable='1' sqlType='-1' radix='10' pos='1' label='ONE' typeName='LONG' caseSens='true' dataType='LONGVARCHAR'>ONE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' precision='10' scale='3' nullable='1' sqlType='3' colSize='10' radix='10' charLength='22' pos='2' label='TWO' typeName='NUMBER' dataType='DECIMAL'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' precision='38' nullable='0' sqlType='3' colSize='22' radix='10' charLength='22' pos='3' label='THREE' typeName='NUMBER' pk='true' pkName='SYS_C007061' dataType='DECIMAL'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' precision='38' nullable='1' sqlType='3' colSize='22' radix='10' charLength='22' pos='4' label='FOUR' typeName='NUMBER' dataType='DECIMAL'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='FLOAT' precision='3' scale='-127' nullable='1' sqlType='6' colSize='3' radix='10' charLength='22' pos='5' label='FIVE' typeName='NUMBER' dataType='FLOAT'>FIVE</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>2</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq2", message, this.tableName); } public void testCreateSeq3() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='10' nullable='0' sqlType='12' colSize='10' radix='10' charLength='10' pos='1' label='TWO' typeName='VARCHAR2' caseSens='true' pk='true' pkName='SYS_C007063' dataType='VARCHAR'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='10' nullable='0' sqlType='12' colSize='10' radix='10' charLength='10' pos='2' label='THREE' typeName='VARCHAR2' caseSens='true' pk='true' pkName='SYS_C007063' dataType='VARCHAR'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='10' nullable='0' sqlType='12' colSize='10' radix='10' charLength='10' pos='3' label='FOUR' typeName='VARCHAR2' caseSens='true' pk='true' pkName='SYS_C007063' dataType='VARCHAR'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='VARCHAR2' precision='10' nullable='1' sqlType='12' colSize='10' radix='10' charLength='10' pos='4' label='EIGHT' typeName='VARCHAR2' caseSens='true' dataType='VARCHAR'>EIGHT</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>3</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq3", message, this.tableName); } public void testCreateSeq4() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CHAR' precision='1' nullable='1' sqlType='1' colSize='1' radix='10' charLength='1' pos='1' label='ONE' typeName='CHAR' caseSens='true' dataType='CHAR'>ONE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CHAR' precision='10' nullable='1' sqlType='1' colSize='10' radix='10' charLength='10' pos='2' label='TWO' typeName='CHAR' caseSens='true' dataType='CHAR'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CHAR' precision='10' nullable='1' sqlType='1' colSize='10' radix='10' charLength='10' pos='3' label='THREE' typeName='CHAR' caseSens='true' dataType='CHAR'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CHAR' precision='10' nullable='1' sqlType='1' colSize='10' radix='10' charLength='10' pos='4' label='FOUR' typeName='CHAR' caseSens='true' dataType='CHAR'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NCHAR' precision='1' nullable='1' sqlType='1111' colSize='2' radix='10' charLength='2' pos='5' label='FIVE' typeName='CHAR' caseSens='true' dataType='OTHER'>FIVE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NCHAR' precision='10' nullable='1' sqlType='1111' colSize='20' radix='10' charLength='20' pos='6' label='SIX' typeName='CHAR' caseSens='true' dataType='OTHER'>SIX</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='CLOB' nullable='1' sqlType='2005' colSize='4000' radix='10' charLength='4000' pos='7' label='SEVEN' typeName='CLOB' dataType='CLOB'>SEVEN</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NCLOB' nullable='1' sqlType='1111' colSize='4000' radix='10' charLength='4000' pos='8' label='EIGHT' typeName='CLOB' dataType='OTHER'>EIGHT</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='BLOB' nullable='1' sqlType='2004' colSize='4000' radix='10' charLength='4000' pos='9' label='NINE' typeName='BLOB' dataType='BLOB'>NINE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='BFILE' nullable='1' sqlType='-13' colSize='530' radix='10' charLength='530' pos='10' label='TEN' typeName='BFILE' dataType='UNKNOWN'>TEN</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>4</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq4", message, this.tableName); } public void testCreateSeq5() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' scale='-127' nullable='1' sqlType='3' colSize='22' radix='10' charLength='22' pos='1' label='ONE' typeName='NUMBER' dataType='DECIMAL'>ONE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' precision='3' nullable='1' sqlType='3' colSize='3' radix='10' charLength='22' pos='2' label='TWO' typeName='NUMBER' dataType='DECIMAL'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='NUMBER' precision='3' scale='2' nullable='1' sqlType='3' colSize='3' radix='10' charLength='22' pos='3' label='THREE' typeName='NUMBER' dataType='DECIMAL'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='LONG' precision='2147483647' nullable='1' sqlType='-1' radix='10' pos='4' label='FOUR' typeName='LONG' caseSens='true' dataType='LONGVARCHAR'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='DATE' nullable='1' sqlType='91' colSize='7' radix='10' charLength='7' pos='5' label='FIVE' typeName='DATE' dataType='DATE'>FIVE</colname>\n" +// The following would work on oracle 10 but does not on 8.1.6 // " <colname table='${tableName}' schema='${schemaName}' type='BINARY_FLOAT' nullable='1' sqlType='100' colSize='4' radix='10' charLength='4' pos='6' label='SIX' typeName='BINARY_FLOAT' dataType='UNKNOWN'>SIX</colname>\n" +// " <colname table='${tableName}' schema='${schemaName}' type='BINARY_DOUBLE' nullable='1' sqlType='101' colSize='8' radix='10' charLength='8' pos='7' label='SEVEN' typeName='BINARY_DOUBLE' dataType='UNKNOWN'>SEVEN</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>5</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq5", message, this.tableName); } /* does not work on ora 8.1.6 public void testCreateSeq6() { String tableName = "${tableName}"; String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(6)' scale='1' nullable='1' sqlType='93' colSize='11' radix='10' charLength='11' pos='1' label='ONE' typeName='TIMESTAMP' dataType='TIMESTAMP'>ONE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(2)' scale='1' nullable='1' sqlType='1111' colSize='11' radix='10' charLength='11' pos='2' label='TWO' typeName='TIMESTAMP' dataType='OTHER'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(6) WITH TIME ZONE' scale='1' nullable='1' sqlType='-101' colSize='13' radix='10' charLength='13' pos='3' label='THREE' typeName='TIMESTAMPTZ' dataType='UNKNOWN'>THREE</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(2) WITH TIME ZONE' scale='1' nullable='1' sqlType='1111' colSize='13' radix='10' charLength='13' pos='4' label='FOUR' typeName='TIMESTAMPTZ' dataType='OTHER'>FOUR</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(6) WITH LOCAL TIME ZONE' scale='1' nullable='1' sqlType='-102' colSize='11' radix='10' charLength='11' pos='5' label='SIX' typeName='TIMESTAMPLTZ' dataType='UNKNOWN'>SIX</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='TIMESTAMP(2) WITH LOCAL TIME ZONE' scale='1' nullable='1' sqlType='1111' colSize='11' radix='10' charLength='11' pos='6' label='SEVEN' typeName='TIMESTAMPLTZ' dataType='OTHER'>SEVEN</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>6</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq6", message, tableName); } */ public void testCreateSeq7() { String message = "<?xml version='1.0' encoding='UTF-8' ?>\n" + " <sql>\n" + " <desc>\n" + " <command>CREATE</command>\n" + " <ident>${tableName}</ident>\n" +// " <colname table='${tableName}' schema='${schemaName}' type='INTERVAL YEAR(2) TO MONTH' precision='2' nullable='1' sqlType='-103' colSize='2' radix='10' charLength='5' pos='1' label='ONE' typeName='INTERVALYM' dataType='UNKNOWN'>ONE</colname>\n" +// " <colname table='${tableName}' schema='${schemaName}' type='INTERVAL YEAR(3) TO MONTH' precision='3' nullable='1' sqlType='1111' colSize='3' radix='10' charLength='5' pos='2' label='TWO' typeName='INTERVALYM' dataType='OTHER'>TWO</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='RAW' nullable='1' sqlType='-3' colSize='200' radix='10' charLength='200' pos='3' label='SEVEN' typeName='RAW' dataType='VARBINARY'>SEVEN</colname>\n" + " <colname table='${tableName}' schema='${schemaName}' type='LONG RAW' precision='2147483647' nullable='1' sqlType='-4' radix='10' pos='4' label='EIGHT' typeName='LONG RAW' dataType='LONGVARBINARY'>EIGHT</colname>\n" +// " <colname table='${tableName}' schema='${schemaName}' type='ROWID' nullable='1' sqlType='1111' colSize='10' radix='10' charLength='10' pos='5' label='NINE' typeName='ROWID' dataType='OTHER'>NINE</colname>\n" +// " <colname table='${tableName}' schema='${schemaName}' type='UROWID' nullable='1' sqlType='1111' colSize='4000' radix='10' charLength='4000' pos='6' label='TEN' dataType='OTHER'>TEN</colname>\n" + " <attr name='_createCounter' type='int'>0</attr>\n" + " <attr name='extraReplKey'>7</attr>\n" + " <attr name='action'>CREATE</attr>\n" + " <attr name='tableName'>${tableName}</attr>\n" + " <attr name='replKey'>100</attr>\n" + " <attr name='transaction'>100.1001</attr>\n" + " <attr name='dbId'>db</attr>\n" + " <attr name='guid'>1000100101</attr>\n" + " <attr name='schema'>${schemaName}</attr>\n" + " <attr name='version'>0.0</attr>\n" + " </desc>\n" + " </sql>\n"; createSeq("testCreateSeq7", message, this.tableName); } private String displayInfo(Object obj) { try { String clazzName = obj.getClass().getName(); Class clazz = java.lang.Class.forName(clazzName); StringBuffer results = new StringBuffer(); org.xmlBlaster.util.classloader.ClassLoaderUtils.displayClassInfo(clazz, results); return results.toString(); } catch (Exception ex) { ex.printStackTrace(); return ""; } } public void processOneTable(Connection conn, String schemaName, String tableName) throws Exception { ResultSet rs = null; Statement st = null; try { String name = null; if (schemaName != null) name = schemaName + "." + tableName; else name = tableName; try { String sql = "SELECT * from " + name; conn.setAutoCommit(true); st = conn.createStatement(); rs = st.executeQuery(sql); } catch (SQLException ex) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -