【jdbc catalog】 sqlserver timestamp UNSUPPORTED_TYPE

Viewed 104

使用doris2.0.5版本jdbc catlog查询数据时,timestamp 的数据类型不支持
c78a0b7c4869e31fd3bf8e826b759a1.png

2 Answers

我提交了一个 PR 来解决这个问题
https://github.com/apache/doris/pull/31805
由于 SQL Server 的 timestamp 实际上是一个二进制类型而非真正的时间戳,而 Doris 本身并没有用于映射 SQL Server timestamp 的二进制类型,这导致 SQL Server 的 timestamp 字段在 Doris 中被视为不受支持的类型(unsupported type)。这个问题会在查询涉及到该字段时抛出异常。考虑到许多用户在使用 SQL Server 时会用到 timestamp 类型,我在这个 PR 中做了改进。将 SQL Server 的 timestamp 类型在 Doris 中映射为字符串(String)类型,并采用十六进制格式展示其二进制数据。请注意,转换后的数据不具备实际意义,主要目的是避免因字段类型不支持而导致的查询异常,从而确保查询的顺利执行。
这个功能预计会在 2.1.1 和 2.0.6 版本发布

CREATE TABLE [dbo].[Charge_Info] (
[ID] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[No] varchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[NoRelOne] varchar(20) COLLATE Chinese_PRC_CI_AS NULL,
[NoRelTwo] varchar(20) COLLATE Chinese_PRC_CI_AS NULL,
[HistoryID] varchar(200) COLLATE Chinese_PRC_CI_AS NULL,
[RowVer] timestamp NULL
)