CREATE OR REPLACE FUNCTION f_cast_item_update(IN integer, IN integer[], IN varchar, IN varchar, OUT errcd integer, OUT errmsg character varying) AS $BODY$ DECLARE i_itemcd ALIAS FOR $1; -- å“ç›®C i_castcd ALIAS FOR $2; -- ã‚ャストC i_updusrnm ALIAS FOR $3; -- 更新ユーザå i_updpcnm ALIAS FOR $4; -- 更新マシン i integer; cntcheck integer; BEGIN IF i_itemcd IS NULL THEN errmsg := 'å“ç›®ã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; IF i_castcd IS NULL THEN errmsg := 'ã‚ãƒ£ã‚¹ãƒˆã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; IF i_updusrnm IS NULL THEN errmsg := '更新ユーザåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; IF i_updpcnm IS NULL THEN errmsg := 'æ›´æ–°ãƒžã‚·ãƒ³ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; -- 外部ã‚ーãƒã‚§ãƒƒã‚¯ -- SELECT itemcd INTO cntcheck FROM t_item_basic_attr WHERE itemcd = i_itemcd; IF NOT FOUND THEN errmsg := 'å“目基本属性テーブルã«å˜åœ¨ã—ãªã„å“目コード'; errcd := -10; RETURN; END IF; i := 1; LOOP SELECT castcd INTO cntcheck FROM t_cast WHERE castcd = i_castcd[i]; IF NOT FOUND THEN errmsg := 'ã‚ャストテーブルã«å˜åœ¨ã—ãªã„ã‚ャストコードãŒã‚ã‚‹'; errcd := -10; RETURN; END IF; i := i + 1; IF i_castcd[i] IS NULL THEN EXIT; END IF; END LOOP; -- æ›´æ–°å‡¦ç† -- delete from t_cast_item where itemcd = i_itemcd; i := 1; LOOP INSERT INTO t_cast_item(castcd, itemcd, updusrnm, updpcnm) VALUES(i_castcd[i], i_itemcd, i_updusrnm, i_updpcnm); i := i + 1; IF i_castcd[i] IS NULL THEN EXIT; END IF; END LOOP; errcd := 1; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;