-- 仮嗿³¨ãƒ‡ãƒ¼ã‚¿å‰Šé™¤ CREATE OR REPLACE FUNCTION f_upd_preorder( IN _ordermember integer ) RETURNS integer AS $$ DECLARE _rec RECORD; _s varchar(4000); BEGIN -- ordermemberãŒNOT NULLã®å ´åˆã¯ã€ordermemberを見ã¦å‡¦ç†ã‚’行ㆠIF _ordermember IS NOT NULL THEN -- 仮嗿³¨ _s := 'SELECT * FROM t_order_title WHERE ordermember = ' || _ordermember || ' AND preorderflg = TRUE;'; FOR _rec IN EXECUTE _s LOOP -- å—æ³¨è¦‹å‡ºã— UPDATE t_order_title set delflg = TRUE WHERE orderno = _rec.orderno; -- å—æ³¨æ˜Žç´° UPDATE t_order_detail set delflg = TRUE WHERE orderno = _rec.orderno; -- 入金 UPDATE t_deposit set delflg = TRUE WHERE orderno = _rec.orderno; -- å‡ºè· UPDATE t_forward_detail set delflg = TRUE WHERE orderno = _rec.orderno; -- DLå—æ³¨ UPDATE t_dl_order set delflg = TRUE WHERE orderno = _rec.orderno; END LOOP; ELSE -- ordermemberãŒNULLã®å ´åˆã¯ã€adddateを見ã¦å‡¦ç†ã‚’行ㆠ-- 仮嗿³¨ _s := 'SELECT * FROM t_order_title WHERE preorderflg = TRUE AND adddate <= CURRENT_TIMESTAMP + \'-1 hours\';'; FOR _rec IN EXECUTE _s LOOP -- å—æ³¨è¦‹å‡ºã— UPDATE t_order_title set delflg = TRUE WHERE orderno = _rec.orderno; -- å—æ³¨æ˜Žç´° UPDATE t_order_detail set delflg = TRUE WHERE orderno = _rec.orderno; -- 入金 UPDATE t_deposit set delflg = TRUE WHERE orderno = _rec.orderno; -- å‡ºè· UPDATE t_forward_detail set delflg = TRUE WHERE orderno = _rec.orderno; -- DLå—æ³¨ UPDATE t_dl_order set delflg = TRUE WHERE orderno = _rec.orderno; --RAISE NOTICE 'orderno : % ', _rec.orderno; END LOOP; END IF; RETURN 1; END; $$ LANGUAGE 'plpgsql' VOLATILE;