就我而言,我必须比较2个不同数据库的列数据类型。
下面是示例代码。

ResultSetMetaData metadataSrc = Src_rs.getMetaData(); // here Src_rs is source resultset
ResultSetMetaData metadataTar= Tar_rs.getMetaData();   // here Tar_rs is target resultset
int countSrc = metadataSrc.getColumnCount();
for (int i = 1; i <= countSrc; i++) {
String srcOracleType=metadataSrc.getColumnTypeName(i);
String tarMySqlType = metadataTar.getColumnTypeName(i);
}


在这里,我要检查srcOracleType是否等于tarMySqlType。如果相同,我要继续执行,否则需要返回false。

当我尝试在MySQL和Oracle中创建数据类型为int的表时,此查询开始。当我检索两个数据库数据类型时,通过Java Jdbc代码,对于oracle给出NUMBER,对于mysql给出LONG

最佳答案

从API(http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSetMetaData.html)中提取:

getColumnTypeName(int column)
     Retrieves the designated column's database-specific type name.


您可以使用:

getColumnClassName(int column)
      Returns the fully-qualified name of the Java class whose instances are manufactured if the method ResultSet.getObject is called to retrieve a value from the column.


通过比较Java中的“转换”,而不是比较特定于数据库的行类型,将更加容易。

10-08 07:07
查看更多