You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Snowflake任务无法向含TIMESTAMP_NTZ(9)列的表插入数据

Snowflake任务调用存储过程无数据写入异常问题

在Snowflake中开发了一套数据加载逻辑:通过存储过程从视图读取数据插入目标表。手动调用存储过程时数据能正常写入,但通过任务调用该存储过程时,仅当目标表包含TIMESTAMP_NTZ(9)类型列时会出现无数据写入的情况,且查询information_schema.task_history()未发现任何报错信息。切换存储过程的EXECUTE AS OWNER与CALLER两种执行模式后,问题依然存在。

相关对象完整代码

CREATE OR REPLACE TABLE TEST_DB.TEST_SCHEMA.TEST_DATE_VALUE
(
    NUMBER VARCHAR,
    TEST_DATE TIMESTAMP_NTZ(9)
);

create or replace view TEST_DB.TEST_SCHEMA.V_INSERT_TEST_DATE_VALUE(
    NUMBER,
    TEST_DATE 
) as
SELECT TOP 10 T0.NUMBER,T0.TEST_DATE 
FROM TEST_DB.TEST_SCHEMA.TEST_SOURCE_VIEW AS T0
WHERE T0.TEST_DATE is NOT NULL;

CREATE OR REPLACE PROCEDURE TEST_DB.TEST_SCHEMA.SP_LOAD_TEST_DATE_VALUE("SRC_TABLE_NAME" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
EXECUTE AS OWNER
AS '  
var ret = -1;
var V_QUOTE_SRC_TABLE_NAME = "''" + SRC_TABLE_NAME +  "''";
var V_INSERT_VIEW_NAME = "V_INSERT_" + SRC_TABLE_NAME;
    if (1==1)
    {
        var V_INSERT = "INSERT INTO TEST_DB.TEST_SCHEMA." + SRC_TABLE_NAME + " SELECT * FROM TEST_DB.TEST_SCHEMA."+V_INSERT_VIEW_NAME ;
         var V_EXEC_INSERT = snowflake.createStatement( {sqlText: V_INSERT} );
         var V_RESULT_EXEC_INSERT = V_EXEC_INSERT.execute();
   return ret;
    }
    else
    return 100
    ;
  ';

call TEST_DB.TEST_SCHEMA.SP_LOAD_TEST_DATE_VALUE('TEST_DATE_VALUE');

create or replace task TEST_DB.TEST_SCHEMA.TASK_ESOPDASH_SP_LOAD_TEST_DATE_VALUE
    warehouse=W_ESOPDASH_DEVELOPER
    schedule='USING CRON 45 2 1 * * UTC'
    TIMESTAMP_INPUT_FORMAT='YYYY-MM-DD HH24'
    as call TEST_DB.TEST_SCHEMA.SP_LOAD_TEST_DATE_VALUE('TEST_DATE_VALUE');

EXECUTE TASK TASK_ESOPDASH_SP_LOAD_TEST_DATE_VALUE;

手动调用存储过程时的日期值

手动插入的日期值

内容的提问来源于stack exchange,提问作者Shruti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:25:03