【问题标题】:How can I get size in bytes of a column from result set in java jdbc?如何从 java jdbc 中的结果集中获取列的字节大小?
【发布时间】:2017-09-09 04:24:20
【问题描述】:
ResultSet res

ResultSetMetaData rsmds= res.getMetaData();
int size = rsmds.getColumnDisplaySize(i);

给出列的宽度,我想以字节为单位获取列的大小。我该怎么做?

查询结果集:

SELECT * FROM LevelOne ORDER BY (SELECT NULL) OFFSET 0 ROWS FETCH NEXT 50000 ROWS ONLY;

创建表查询:

CREATE TABLE Q_680_6([Id] INT, [Title] NVARCHAR(MAX) DEFAULT '', [Description] VARCHAR(MAX) Dta_db.dbo.Q_680_6([Id] INT, [Title] NVARCHAR(MAX) DEFAULT '', [Description] VARCHAR(MAX) DEFAULT '', [StartDate] DATETIME DEFAULT NULL, [EndDate] DATETIME DEFAULT NULL, [Lead] NVARCHAR(MAX) DEFAULT '', [CreatedOn] DATETIME DEFAULT NULL, [CreatedBy] INT, [ModifiedOn] DATETIME DEFAULT NULL, [ModifiedBy] INT) END

【问题讨论】:

  • 请发表您的CREATE TABLE 声明。
  • 请找到我再次编辑的问题@MikeNakis
  • 请找到@MikeNakis 发布的查询

标签: java sql-server jdbc resultset


【解决方案1】:

您无法从结果集元数据中得出此信息。您可以使用DatabaseMetaData.getColumns(...),列CHAR_OCTET_LENGTH,但可能不会为char/varchar以外的数据类型填充。

【讨论】:

  • 作为记录,Microsoft JDBC Driver for SQL Server (v6.1) 的当前生产版本为CHAR_OCTET_LENGTHNVARCHAR(MAX) 列返回2147483647
【解决方案2】:

getColumnDisplaySize 是关于结果集的。这与列规范无关。

您可能会发现this 相关讨论很有用。

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 2016-12-26
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多