【发布时间】:2019-09-09 11:13:45
【问题描述】:
我正在编写一个涉及在 AWS Redshift 中使用信息架构的存储过程。
以下所有变量 -
- 使用同一用户
- 使用相同的 Redshift 数据库(端点)
存储过程:
create or replace procedure dev.gp_information_schema_test
(tablename varchar(64))
as $$
declare
table_name varchar(64);
schema_name varchar(64);
counts int;
begin
table_name := split_part(tablename,'.',1);
schema_name:= split_part(tablename,'.',2);
raise info 'table_name - %,Schema_name - %',table_name,schema_name;
counts := (select count(*) from information_schema.tables where table_schema = schema_name);
raise info 'count is -%',counts;
end;
$$
language plpgsql
call dev.gp_information_schema_test('dev.abc');
结果:
Warnings:
table_name - dev,Schema_name - abc
count is -0
0 rows affected
call executed successfully
Execution time: 0.55s
但如果我在外部运行相同的查询(即不通过存储过程),那么:
select count(*)
from information_schema.tables
where table_schema = 'dev'
结果:
我已经阅读了 AWS 文档 (Link) 中存储过程的限制,但没有提到对系统表的访问限制。
【问题讨论】:
-
感谢@marc_S 正确编辑问题。下次会注意的。
标签: amazon-web-services amazon-redshift