Postgresql Rcord变量未赋值
嗨 当我运行下面的函数时,错误如下 错误:尚未分配记录“v_preorderec” 甚至我初始化了v_preorderec:=null 请帮帮我Postgresql Rcord变量未赋值,postgresql,Postgresql,嗨 当我运行下面的函数时,错误如下 错误:尚未分配记录“v_preorderec” 甚至我初始化了v_preorderec:=null 请帮帮我 CREATE OR REPLACE FUNCTION order_f1(p_order_num text) RETURNS void LANGUAGE plpgsql AS $function$ DECLARE c_order CURSOR FOR SELECT od.itemno, it.item_cost,
CREATE OR REPLACE FUNCTION order_f1(p_order_num text)
RETURNS void
LANGUAGE plpgsql
AS $function$
DECLARE
c_order CURSOR FOR
SELECT od.itemno,
it.item_cost,
it.item_code
FROM orderdtls od
LEFT OUTER JOIN itemdtls it ON (od.itemno = it.itemno)
WHERE od.order_num = p_order_num
v_orderrec RECORD;
v_preorderrec RECORD;
BEGIN
v_preorderrec:=null;
open c_order;
loop
fetch c_order
into v_orderrec;
IF NOT FOUND THEN EXIT; END IF;
if coalesce(v_preorderrec.itemno::text, '') = '' or
v_preorderrec.itemno !=
v_orderrec.itemno then
perform modorder(v_orderrec.itemno);
end if;
v_preorderrec := v_orderrec;
end loop;
close c_order;
END;
$function$
;
提前感谢。当第一次进入循环时,
v_preorderec
从未被分配。您只在循环结束时执行此操作。所以你不能真正使用这个记录变量的任何字段。顺便说一句:你不需要循环或PL/pgSQL。你能帮我处理这个问题吗。最初,我想给v_preorderec记录的字段分配空值。一旦分配了此记录v_orderrec,则我只想将值分配给此记录v_preorderrec。游标声明后缺少分号。我错漏了它。但还是同样的错误。你能帮我一下吗?当循环第一次进入时,v_preorderec
从未被分配过。您只在循环结束时执行此操作。所以你不能真正使用这个记录变量的任何字段。顺便说一句:你不需要循环或PL/pgSQL。你能帮我处理这个问题吗。最初,我想给v_preorderec记录的字段分配空值。一旦分配了此记录v_orderrec,则我只想将值分配给此记录v_preorderrec。游标声明后缺少分号。我错漏了它。但还是同样的错误。你能帮帮我吗。