CREATE OR REPLACE FUNCTION f_pre_genre_item_update(IN integer, IN integer[], IN varchar, IN varchar, OUT errcd integer, OUT errmsg character varying) AS $BODY$ DECLARE i_preitemcd ALIAS FOR $1; -- ä»®å“ç›®C i_genrecd ALIAS FOR $2; -- ジャンルC i_updusrnm ALIAS FOR $3; -- 更新ユーザå i_updpcnm ALIAS FOR $4; -- 更新マシン i integer; cntcheck integer; BEGIN IF i_preitemcd IS NULL THEN errmsg := 'ä»®å“ç›®ã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; IF i_genrecd 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 preitemcd INTO cntcheck FROM t_pre_item_attr WHERE preitemcd = i_preitemcd; IF NOT FOUND THEN errmsg := 'å“目基本属性テーブルã«å˜åœ¨ã—ãªã„å“目コード'; errcd := -10; RETURN; END IF; i := 1; LOOP SELECT genrecd INTO cntcheck FROM t_genre WHERE genrecd = i_genrecd[i]; IF NOT FOUND THEN errmsg := 'ジャンルテーブルã«å˜åœ¨ã—ãªã„ジャンルコードãŒã‚ã‚‹'; errcd := -10; RETURN; END IF; i := i + 1; IF i_genrecd[i] IS NULL THEN EXIT; END IF; END LOOP; -- æ›´æ–°å‡¦ç† -- delete from t_pre_genre_item where preitemcd = i_preitemcd; i := 1; LOOP INSERT INTO t_pre_genre_item(genrecd, preitemcd, updusrnm, updpcnm) VALUES(i_genrecd[i], i_preitemcd, i_updusrnm, i_updpcnm); i := i + 1; IF i_genrecd[i] IS NULL THEN EXIT; END IF; END LOOP; errcd := 1; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;