将默认值分配给 TIMESTAMP_NTZ 雪花

Posted

技术标签:

【中文标题】将默认值分配给 TIMESTAMP_NTZ 雪花【英文标题】:Assign default value to TIMESTAMP_NTZ snowflake 【发布时间】:2021-06-15 08:42:38 【问题描述】:

我需要为雪花中数据类型 TIMESTAMP_NTZ 的列 SERVERTIME 分配默认值。 我有以下查询:-

CREATE TABLE STG_ORDER_DETAIL
   (    
    ORDERID NUMBER(38,0) not null, 
    ORDER_TYPE VARCHAR(3), 
    AGGRID VARCHAR(20), 
    AGGRNAME VARCHAR(250), 
    MERCHANTID VARCHAR(20) not null, 
    SERVERTIME NOT NULL DEFAULT '1900-01-01'::TIMESTAMP_NTZ(9),
    CURRENCY VARCHAR(5),
    constraint STG_ORDER_DETAIL_PK primary key (ORDERID, MERCHANTID) not enforced);

出现语法错误。

【问题讨论】:

【参考方案1】:

请确保包含数据类型并与表达式匹配:

CREATE TABLE STG_ORDER_DETAIL
   (    
    ORDERID NUMBER(38,0) not null, 
    ORDER_TYPE VARCHAR(3), 
    AGGRID VARCHAR(20), 
    AGGRNAME VARCHAR(250), 
    MERCHANTID VARCHAR(20) not null, 
    SERVERTIME TIMESTAMP_NTZ(9) NOT NULL DEFAULT '1900-01-01'::TIMESTAMP_NTZ(9),
    CURRENCY VARCHAR(5),
    constraint STG_ORDER_DETAIL_PK primary key (ORDERID, MERCHANTID) not enforced);

【讨论】:

以上是关于将默认值分配给 TIMESTAMP_NTZ 雪花的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库时间戳(6)转换为雪花timestamp_ntz时抛出错误

雪花复制命令以将默认值替换为 null

Mongoose 阻止将默认值分配给枚举

T-SQL存储过程 - 无法将输出值分配给变量

无法将空对象设置为 Record 类型的参数的默认值

将默认时间戳添加到雪花中的表