CREATE OR REPLACE FUNCTION f_genre_member_update(IN integer, IN integer[], IN character varying, IN character varying, OUT errcd integer, OUT errmsg character varying, OUT code integer) AS $BODY$ DECLARE i_membercd 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_membercd 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 membercd INTO cntcheck FROM t_member_basic_attr WHERE membercd = i_membercd; 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_genre_member where membercd = i_membercd; i := 1; LOOP INSERT INTO t_genre_member(membercd, genrecd, updusrnm, updpcnm) VALUES(i_membercd, i_genrecd[i], 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;