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

Snowflake中IDENTIFIER结合DB/SCHEMA使用失效问题咨询

Snowflake中IDENTIFIER与库/模式结合使用的解决办法

你单独使用IDENTIFIER传递表名的代码可以正常运行:

SET TABLE_NM='NAME_RPT';
SELECT * FROM IDENTIFIER($TABLE_NM);

但尝试给IDENTIFIER加上数据库和模式前缀时却无法运行:

SELECT * FROM DB.SCHEMA.IDENTIFIER($TABLE_NM); -- 运行失败

这是因为Snowflake的语法不支持在点分隔的对象路径中间插入IDENTIFIER调用,IDENTIFIER函数需要接收完整的标识符字符串(可以是库.模式.表、模式.表或单独的表名)。你可以通过以下两种方式解决:

  • 将库、模式、表名拼接成完整标识符存入变量
    直接把完整的三部分路径拼成字符串变量,再用IDENTIFIER引用:

    -- 直接赋值完整路径
    SET FULL_TABLE_NM = 'DB.SCHEMA.NAME_RPT';
    SELECT * FROM IDENTIFIER($FULL_TABLE_NM);
    
    -- 或者拆分变量后动态拼接
    SET DB_NM = 'DB';
    SET SCHEMA_NM = 'SCHEMA';
    SET TABLE_NM = 'NAME_RPT';
    SET FULL_TABLE_NM = CONCAT($DB_NM, '.', $SCHEMA_NM, '.', $TABLE_NM);
    SELECT * FROM IDENTIFIER($FULL_TABLE_NM);
    
  • 先切换到目标库和模式,再引用表名变量
    先通过USE SCHEMA指定当前库和模式,之后直接用IDENTIFIER引用表名变量即可:

    SET TABLE_NM = 'NAME_RPT';
    USE SCHEMA DB.SCHEMA;
    SELECT * FROM IDENTIFIER($TABLE_NM);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:12:03