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

使用Snowflake Scripting执行INSERT语句失败问题求助

问题原因

Snowflake Scripting 的 RETURN 语句仅支持返回查询结果集,无法直接返回 INSERT/UPDATE/CREATE 这类DML/DDL语句的执行结果——因为这类语句本身不产生可返回的结果集,仅执行数据操作或对象创建动作。

解决方案

先单独执行DML/DDL语句,再返回自定义的状态提示或操作统计信息(比如影响行数)。

修改后的可用脚本

create or replace table ccb_test as
select
1 as value,
sysdate() as ETL_TS;

SET reload_type = 'PARTIAL'

BEGIN
  LET reload := $reload_type;
  IF (reload = 'PARTIAL') THEN
    -- 单独执行INSERT操作,不嵌套在RETURN中
    INSERT into ccb_test select 2 as value, sysdate() as ETL_DATE;
    -- 返回操作状态+影响行数
    RETURN (SELECT 'PARTIAL reload completed. Rows inserted: ' || @@ROWCOUNT AS message);
  ELSE
    RETURN (SELECT 'Reload is set to FULL, no merge action needed.' AS message);
  END IF;
END;

关键说明

  • DML/DDL语句必须独立执行,不能作为RETURN()的参数
  • 使用@@ROWCOUNT可以获取上一条DML语句影响的行数,用于返回操作结果
  • 若执行DDL语句,可返回自定义确认消息,或用GET_DDL('TABLE', 'CCB_TEST')返回对象的DDL定义作为结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:44:52