是否可以在使用 redshift 数据库的 sql 工作台上创建存储过程?
我试图输入一些在互联网上找到的程序,比如这个
CREATE OR REPLACE FUNCTION proc_sample RETURN INTEGER
IS
l_result INTEGER;
BEGIN
SELECT max(col1) INTO l_result FROM sometable;
RETURN l_result;
END;
但我得到一个错误,光标不在语句内
请帮忙。
是否可以在使用 redshift 数据库的 sql 工作台上创建存储过程?
我试图输入一些在互联网上找到的程序,比如这个
CREATE OR REPLACE FUNCTION proc_sample RETURN INTEGER
IS
l_result INTEGER;
BEGIN
SELECT max(col1) INTO l_result FROM sometable;
RETURN l_result;
END;
但我得到一个错误,光标不在语句内
请帮忙。
您不能在函数中使用 from 子句。您必须使用带有 out 子句的参数的过程。
这是我对 Redshift 存储过程的翻译:
CREATE OR REPLACE PROCEDURE proc_sample (
l_result OUT INTEGER
)
LANGUAGE plpgsql
AS $$
BEGIN
SELECT max(col1) INTO l_result FROM sometable;
END
$$;
您在 Redshift 中调用此存储过程,如下所示:
BEGIN; CALL proc_sample(); END;
-- l_result
-- ----------
-- 99
有关更多信息,请参阅“Amazon Redshift 中的存储过程概述”