我创建了两个函数。我想在main函数中运行该函数。当我运行main函数时,我收到一个错误。我该如何解决这个问题?
注意:受影响的行scrap_v15 = 0 语境:SQL语句“选择update_scrap_v15()” PL / pgSQL函数all_functions()在SQL语句的第15行 错误:查询没有结果数据的目的地 提示:如果要放弃SELECT的结果,请改用PERFORM。 语境:PL / pgSQL all_functions()在SQL语句第15行
这是我的第一个功能
CREATE OR REPLACE FUNCTION update_scrap_v15() RETURNS void AS
$BODY$
DECLARE
scrap_d integer;
BEGIN
update public.scrap_v15_src t2 set scrap = 66 where scrap= 0 and il like '%src%';
GET DIAGNOSTICS scrap_d = ROW_COUNT;
RAISE NOTICE 'The rows affected scrap d=%', scrap_d;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION update_scrap_v15()
OWNER TO postgres;
这是我的第二个功能
CREATE OR REPLACE FUNCTION scrap_type() RETURNS void AS
$BODY$
DECLARE
scrap_t integer;
BEGIN
update public.tmz_001 set scrap_type = '55';
update public.tmz_001 set scrap_dtu = '55';
GET DIAGNOSTICS scrap_t = ROW_COUNT;
RAISE NOTICE 'The rows affected scrap d=%', scrap_t;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION scrap_type()
OWNER TO postgres;
这是我的主要功能
CREATE OR REPLACE FUNCTION all_functions() RETURNS void AS
$BODY$
DECLARE
adm_1 integer; adm_2 integer;
BEGIN
Select update_scrap_v15();
GET DIAGNOSTICS adm_1 = ROW_COUNT;
RAISE NOTICE 'affected=%', adm_1;
Select scrap_type();
GET DIAGNOSTICS adm_2 = ROW_COUNT;
RAISE NOTICE 'affected=%', adm_2;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION all_functions()
OWNER TO postgres;
答案 0 :(得分:1)
在postgres中,如果函数返回由void
调用的PERFORM
类型。
相反:
Select update_scrap_v15();
使用:
PERFORM update_scrap_v15();