小编典典

Amazon Redshift错误-错误:0A000:Redshift表不支持指定的类型或功能(每个INFO消息一个)

sql

运行以下查询时:

WITH sublevels AS (
SELECT 1 UNION ALL 
SELECT 1 UNION ALL
SELECT 1), FIELDA AS (SELECT (ROW_NUMBER() OVER ())::INT sublevel 
FROM sublevels sl1, sublevels sl2, sublevels sl3)
SELECT TOP 10 
FIELDB, 
sublevel, REPLACE(REGEXP_REPLACE(REGEXP_SUBSTR(UPPER(FIELDC), 'FROM \\S+', 1, sublevel), 'FROM ', ''),')','') ALIASA
FROM TABLEA
JOIN FIELDA ON sublevel <= REGEXP_COUNT(UPPER(FIELDC), 'FROM ')
WHERE ALIASA != 'ABC'
AND lower(split_part(ALIASA, '.', 2)) IN (
SELECT DISTINCT lower(t.table_name)
FROM information_schema.tables t
INNER JOIN information_schema.columns c on c.table_name = t.table_name AND c.table_schema = t.table_schema
WHERE lower(column_name) similar TO '%(aaa|bbb|ccc)%')

我收到以下错误:

错误:0A000:Redshift表不支持指定的类型或功能(每个INFO消息一个)。

我不知道为什么,如果我单独运行查询,它们可以正常工作:

查询1

WITH sublevels AS (
SELECT 1 UNION ALL 
SELECT 1 UNION ALL
SELECT 1), FIELDA AS (SELECT (ROW_NUMBER() OVER ())::INT sublevel 
FROM sublevels sl1, sublevels sl2, sublevels sl3)
SELECT TOP 10 
FIELDB, 
sublevel, REPLACE(REGEXP_REPLACE(REGEXP_SUBSTR(UPPER(FIELDC), 'FROM \\S+', 1, sublevel), 'FROM ', ''),')','') ALIASA
FROM TABLEA
JOIN FIELDA ON sublevel <= REGEXP_COUNT(UPPER(FIELDC), 'FROM ')
WHERE ALIASA != 'ABC'

查询2

SELECT DISTINCT lower(t.table_name)
FROM information_schema.tables t
INNER JOIN information_schema.columns c on c.table_name = t.table_name AND c.table_schema = t.table_schema
WHERE lower(column_name) similar TO '%(aaa|bbb|ccc)%'

阅读 176

收藏
2021-04-14

共1个答案

小编典典

在Redshift中:

  1. 针对information_schema的查询仅在领导节点上运行
  2. 针对任何“正常”表的查询仅在计算节点上运行

您不能混合和匹配1.和2。

2021-04-14