当试图在postgres中返回表时,这是我的查询:
CREATE OR REPLACE FUNCTION list_log_approval(IN p_create_code INTEGER,IN p_update_code INTEGER) RETURNS
TABLE(processcode integer, processname VARCHAR,id BIGINT, pleader CHARACTER VARYING,activity VARCHAR,date_plead timestamp)
LANGUAGE plpgsql AS $$
BEGIN
IF NOT EXISTS( SELECT * FROM log_approval WHERE processcode = $1 and status = 'A' or status = 'D')AND NOT EXISTS(SELECT * FROM log_approval WHERE processcode = $2 and status = 'A' or status = 'D') THEN
RETURN QUERY SELECT * from vw_list_appv;
END IF;
RETURN;
END $$;
- 我这样称呼
select * from list_log_approval(1070,1072)
我收到以下错误:
[Err] ERROR:列引用“processcode”不明确
第3行:processcode **
为什么它含糊不清?
答案 0 :(得分:1)
processcode
用作函数参数和表列。
最好的方法是使用具有不同名称的函数参数,例如p_processcode
。
但您也可以通过限定名称来消除歧义:列{}为log_approval.processcode
,函数参数为list_log_approval.processcode
。