如何筛选 "show tables"
How to filter "show tables"
我想过滤 show tables
的输出。
文档中有 one example 说明如何使用 result_scan(last_query_id())
执行此操作,但对我而言,该示例不起作用:
show tables;
select "schema_name", "name" as "table_name", "rows"
from table(result_scan(last_query_id()))
where "rows" = 0;
-- SQL compilation error: error line 1 at position 8 invalid identifier 'SCHEMA_NAME'
列SCHEMA_NAME
实际上在show tables
的输出中,
所以我不明白哪里出了问题。
最佳,
大卫
您可以使用 $<col_n>
语法(#8 表示行)引用过滤列。
示例:
show tables;
select *
from table(result_scan())
where > 5
话虽如此,你的查询对我有用。
运行 在您的帐户中添加以下内容并查看其设置:
show parameters like 'QUOTED_IDENTIFIERS_IGNORE_CASE';
如果将其设置为 TRUE,则会忽略查询中的引号,然后将大写列名,这与 SHOW 输出的小写名称不匹配。
要解决您自己的会话,您可以运行以下操作:
ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = False;
您也可以根据需要在用户或帐户级别更改此设置。不建议将此值设置为 TRUE,因为您运行正在进入。
我想过滤 show tables
的输出。
文档中有 one example 说明如何使用 result_scan(last_query_id())
执行此操作,但对我而言,该示例不起作用:
show tables;
select "schema_name", "name" as "table_name", "rows"
from table(result_scan(last_query_id()))
where "rows" = 0;
-- SQL compilation error: error line 1 at position 8 invalid identifier 'SCHEMA_NAME'
列SCHEMA_NAME
实际上在show tables
的输出中,
所以我不明白哪里出了问题。
最佳,
大卫
您可以使用 $<col_n>
语法(#8 表示行)引用过滤列。
示例:
show tables;
select *
from table(result_scan())
where > 5
话虽如此,你的查询对我有用。
运行 在您的帐户中添加以下内容并查看其设置:
show parameters like 'QUOTED_IDENTIFIERS_IGNORE_CASE';
如果将其设置为 TRUE,则会忽略查询中的引号,然后将大写列名,这与 SHOW 输出的小写名称不匹配。
要解决您自己的会话,您可以运行以下操作:
ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = False;
您也可以根据需要在用户或帐户级别更改此设置。不建议将此值设置为 TRUE,因为您运行正在进入。