【发布时间】:2009-10-12 19:15:43
【问题描述】:
我正在开发一些必须临时在各种数据库(Oracle、DB2、SQLServer)中创建虚拟条目的软件。该行中的每一列都填充了随机数据。
代码使用java中的java.sql.DataBaseMetaData类来获取COLUMN_SIZE属性来计算随机字符串的大小,存储在VARCHAR2和其他字符串列类型中。
DatabaseMetaData metadata = connection.getMetaData();
while (resultSet.next()) {
ResultSet resultSet = metadata.getColumns(...);
int size = resultSet.getInt("COLUMN_SIZE");
}
问题是,至少在 Oracle 中,我似乎无法确定列长度是以字节还是字符返回的。此外,根据编码,字符是不同的字节数。结合所有这些,我得到一些 SQL 错误,因为试图插入的字符串太大。我错过了什么明显的东西吗?
【问题讨论】:
-
我猜您在示例中错误地交换了第 2 行和第 3 行?
标签: java sql sql-server oracle db2