我正在尝试从 Redshift 存储过程中获取 DataGrip 控制台中的结果集。这是我的存储过程主体
CREATE OR REPLACE PROCEDURE test_schema.get_redshift_table_ddl(
p_schema_name IN VARCHAR,
p_table_name IN VARCHAR,
rs_out INOUT refcursor
)
AS $$
DECLARE
v_query TEXT;
BEGIN
OPEN rs_out FOR SELECT * FROM test_schema.test_table LIMIT 5;
END;
$$
LANGUAGE plpgsql
;
我在控制台中调用存储过程,如下所示:
BEGIN;
CALL test_schema.get_redshift_table_ddl('test_schema','test_other_table','rs_out');
FETCH ALL FROM rs_out;
END;
这是我正在关注的AWS参考:https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-result-set.html
错误 当我调用存储过程时,出现以下错误
ERROR: function format(character varying, character varying, character varying) does not exist Hint: No function matches the given name and argument types. You may need to add explicit type casts. Where: SQL statement "SELECT FORMAT( $1 , $2 , $3 )"
问题
如何在从控制台调用存储过程时传递引用游标名称?
您应该使用某个函数
format
,Redshift 不支持该函数。函数 format
在 PostgreSQL 9.3 中实现。 Amazon Redshift 基于某些 8.x Postgres。