SQL Server Polybase使用列数据类型TIMESTAMP WITH TIME ZONE向Oracle创建外部表错误

时间:2020-06-22 09:33:17

标签: oracle sqldatatypes external-tables sql-server-2019 polybase

创建的数据库范围凭证和Oracle OK的外部数据源。 无论我尝试使用哪种数据类型,都无法在Orcle表上使用TIMESTAMP WITH TIME ZONE列创建外部表。

CREATE EXTERNAL TABLE MYSCHEMA.MY_EXT_TABLE
(
    SOMECOL NVARCHAR(21) COLLATE Finnish_Swedish_BIN, -- OK
    SOME_DATETIME DATETIME2,    -- OK
    SOME_DATE_COMM DATE,-- OK
    SOME_FLOAT float,-- OK

    SOME_TIMESTAMP datetimeoffset(7)  -- NOK
)
WITH
(
    LOCATION = N'ORACLEDATABASE.SCHEMA.TABLE',
    DATA_SOURCE = my_oracle_ds
)
GO

失败,出现错误: 消息105083,第16层,状态1,第2行 105083;用户定义的架构中的以下列与表'SOME_TABLE'的外部表架构不兼容:'SOME_TIMESTAMP'未能反映错误:'检测到的后端类型TIMESTAMP(6)WITH TIME ZONE不支持外部通用表。

我尝试使用datetime,datetime2,datetimeoffset,NVARCHAR,但发生相同的错误。 是否有针对多数据库/通用表的解决方法,还是我必须跳过这些列?

1 个答案:

答案 0 :(得分:0)

CREATE EXTERNAL TABLE MYSCHEMA.MY_EXT_TABLE
(
    SOMECOL NVARCHAR(21) COLLATE Finnish_Swedish_BIN,
    SOME_DATETIME DATETIME2,    
    SOME_DATE_COMM DATE,
    SOME_FLOAT FLOAT,
    SOME_TIMESTAMP TO_TIMESTAMP_TZ('America/Los_Angeles', 'TZR') 
) WITH ( LOCATION = N'ORACLEDATABASE.SCHEMA.TABLE' , DATA_SOURCE = my_oracle_ds ) GO