如何从雪花中的数据库模式检索所有表名

时间:2020-09-15 13:21:39

标签: javascript sql stored-procedures snowflake-cloud-data-platform

我试图在特定模式下检索数据库中所有表的名称,但这仅在信息模式下有效,而对其他模式返回null。这是我的尝试:

CREATE PROCEDURE tablename(DB VARCHAR,SC VARCHAR)
RETURNS array
LANGUAGE JAVASCRIPT
AS
$$
    var t = [];
    var stmt = snowflake.createStatement({
    sqlText: "SELECT table_name FROM "+ DB +".information_schema.TABLES where TABLE_TYPE='BASE_TABLE';"});
    var e = stmt.execute();
    
    while(e.next())
    {
       var x = r.getColumnValue('table_name');
       t.push(x);
    }
return t;
$$;

1 个答案:

答案 0 :(得分:2)

information_schema.TABLES仅显示已被授予会话当前角色的访问权限的对象。

也许您缺少某些特权,这就是为什么您看不到其他表,而只看到information_schema中的表的原因?

要检查是否可以使用SHOW GRANTS。

更多信息:https://docs.snowflake.com/en/sql-reference/info-schema/tables.htmlhttps://docs.snowflake.com/en/sql-reference/sql/show-grants.html

亲切的问候:-)