Amazon Redshift 存储过程调用
Amazon Redshift stored procedure call
CREATE OR REPLACE PROCEDURE proc_test1(p_1 varchar)
LANGUAGE plpgsql
AS $$
DECLARE
V_TEST integer := 0;
BEGIN
select count(*)
from mytab
into V_TEST
WHERE X =P_1;
RAISE NOTICE 'COUNT IS:(%)',V_TEST;
EXCEPTION
WHEN OTHERS THEN
null;
END;
$$
;
在 Amazon Redshift 中,我可以不这样调用这个存储过程吗?
调用 proc_test1(p_1 => 'x')
另外,为什么带分号的 RAISE 会失败?下面的错误处理程序说 RAISE; - 我收到的错误是无效操作:在或附近出现语法错误;
CREATE OR REPLACE PROCEDURE risk.proc_test1(p_1 varchar)
LANGUAGE plpgsql
AS $$
DECLARE
V_TEST integer := 0;
BEGIN
select count(*)
from risk.mytab
into V_TEST
WHERE X =P_1;
RAISE NOTICE 'COUNT IS:(%)',V_TEST;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
$$
;
call proc_test1(p_1 => 'x')
您是在询问调用的语法,还是在询问命名参数?
文档没有提到它,所以不支持它。
https://docs.aws.amazon.com/redshift/latest/dg/r_CALL_procedure.html
我想关于 RAISE
错误,您缺少必需的参数
https://docs.aws.amazon.com/redshift/latest/dg/c_PLpgSQL-statements.html#r_PLpgSQL-messages-errors
RAISE level 'format' [, variable [, ...]];
所有这些都在文档中。
CREATE OR REPLACE PROCEDURE proc_test1(p_1 varchar)
LANGUAGE plpgsql
AS $$
DECLARE
V_TEST integer := 0;
BEGIN
select count(*)
from mytab
into V_TEST
WHERE X =P_1;
RAISE NOTICE 'COUNT IS:(%)',V_TEST;
EXCEPTION
WHEN OTHERS THEN
null;
END;
$$
;
在 Amazon Redshift 中,我可以不这样调用这个存储过程吗?
调用 proc_test1(p_1 => 'x')
另外,为什么带分号的 RAISE 会失败?下面的错误处理程序说 RAISE; - 我收到的错误是无效操作:在或附近出现语法错误;
CREATE OR REPLACE PROCEDURE risk.proc_test1(p_1 varchar)
LANGUAGE plpgsql
AS $$
DECLARE
V_TEST integer := 0;
BEGIN
select count(*)
from risk.mytab
into V_TEST
WHERE X =P_1;
RAISE NOTICE 'COUNT IS:(%)',V_TEST;
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
$$
;
call proc_test1(p_1 => 'x')
您是在询问调用的语法,还是在询问命名参数?
文档没有提到它,所以不支持它。
https://docs.aws.amazon.com/redshift/latest/dg/r_CALL_procedure.html
我想关于 RAISE
错误,您缺少必需的参数
https://docs.aws.amazon.com/redshift/latest/dg/c_PLpgSQL-statements.html#r_PLpgSQL-messages-errors
RAISE level 'format' [, variable [, ...]];
所有这些都在文档中。