-- å“目ウェブ属性テーブル 変更 CREATE OR REPLACE FUNCTION f_item_web_attf_update(IN integer, IN integer, IN date, IN integer, IN character varying, IN character varying, IN character varying, IN integer, OUT errcd integer, OUT errmsg character varying) AS $BODY$ DECLARE kubun ALIAS FOR $1; -- 区分 i_itemcd ALIAS FOR $2; -- å“目コード i_releasedate ALIAS FOR $3; -- 公開日 i_rankingrate ALIAS FOR $4; -- ランク i_comment ALIAS FOR $5; -- コメント i_updusrnm ALIAS FOR $6; -- 更新ユーザå i_updpcnm ALIAS FOR $7; -- 更新マシンå i_updcnt ALIAS FOR $8; -- 更新カウンタ cntcheck integer; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ -- -- 処ç†åŒºåˆ† IF kubun IS NULL OR kubun NOT IN (1,2,3) THEN RAISE EXCEPTION '処ç†åŒºåˆ†ãŒä¸æ£ã§ã™'; END IF; IF i_itemcd IS NULL THEN RAISE EXCEPTION 'å“目コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF kubun IN (2,3) THEN IF i_updcnt IS NULL THEN RAISE EXCEPTION '更新カウンタã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; IF kubun IN (1) THEN IF i_updusrnm IS NULL THEN RAISE EXCEPTION '更新ユーザåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_updpcnm IS NULL THEN RAISE EXCEPTION '更新マシンåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; END IF; -- å˜åœ¨ãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT itemcd INTO cntcheck FROM t_item_web_attr WHERE itemcd = i_itemcd; IF NOT FOUND THEN RAISE EXCEPTION 'ãã®å“目コードã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT updcnt INTO cntcheck FROM t_item_web_attr WHERE itemcd = i_itemcd; IF NOT FOUND OR cntcheck <> i_updcnt THEN errcd := -11; errmsg := '更新カウンタãŒä¸æ£'; RETURN; END IF; END IF; --- æ›´æ–°å‡¦ç† --- IF kubun = 1 THEN -- è¿½åŠ INSERT INTO t_item_web_attr( itemcd, releasedate, rankingrate, comment, updusrnm, updpcnm) VALUES( i_itemcd, i_releasedate, i_rankingrate, i_comment, i_updusrnm, i_updpcnm); errcd := 1; RETURN; -- 変更 ELSIF kubun = 2 THEN -- 更新ユーザ UPDATE t_item_web_attr SET releasedate = i_releasedate, rankingrate = i_rankingrate, comment = i_comment, updusrnm = i_updusrnm, updpcnm= i_updpcnm WHERE itemcd= i_itemcd; errcd := 1; RETURN; -- 削除 ELSIF kubun =3 THEN UPDATE t_item_web_attr SET delflg = TRUE, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE itemcd = i_itemcd; errcd := 1; RETURN; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;