如何从java jdbc中的结果集中获取列的字节大小?

时间:2017-04-13 07:04:02

标签: java sql-server jdbc resultset

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

getColumnDisplaySize与结果集有关。它与列规范无关。

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