首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图使用jdbc元数据获取列的列大小

试图使用jdbc元数据获取列的列大小
EN

Stack Overflow用户
提问于 2016-02-15 16:10:11
回答 2查看 5K关注 0票数 2

我试图仅使用jdbc的元数据为表重新创建一个模式。

除了列的大小之外,我所有的东西都在工作。地点VARCHAR(10)

目前,每一列都打印VARCHAR(2000000000)。

守则:

代码语言:javascript
复制
ResultSet rs = databaseMetaData.getColumns(null, null, tableName, null);
while(rs.next()) {
  int columnSize = rs.getInt("COLUMN_SIZE");
}

预期的输出是在创建架构中的表时使用的数字,但它总是返回2000000000。我错过了什么简单的东西吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-15 16:24:31

您问题的标记表明您正在使用SQLite。

文档,第2.2章亲缘名称示例指出:

请注意,SQLite - SQLite忽略类型名称(ex:"VARCHAR(255)")后面的括号中的数值参数,不会对字符串、BLOB或数值的长度施加任何长度限制(除了大型全局SQLITE_MAX_LENGTH限制之外)。

由于SQLite不使用长度信息,所以对于COLUMN_SIZE,它只返回基于字符的列的最大大小。

票数 4
EN

Stack Overflow用户

发布于 2016-02-15 16:20:19

尝试使用这种方法

代码语言:javascript
复制
databaseMetaData.getColumnDisplaySize(int column)

其中column参数是表中的列数。来源:https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35413956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档