-- レビューテーブル 変更 CREATE OR REPLACE FUNCTION f_review_update( IN integer, IN integer, IN integer, IN integer, IN integer, IN character varying, IN character varying, IN character varying, IN integer, OUT errcd integer, OUT errmsg character varying, OUT code integer) AS $$ DECLARE kubun ALIAS FOR $1; -- 区分 i_reviewcd ALIAS FOR $2; -- レビューコード i_itemcd ALIAS FOR $3; -- 商å“コード i_usercd ALIAS FOR $4; -- ユーザーコード i_rankingrate ALIAS FOR $5; -- ランã‚ング i_comment ALIAS FOR $6; -- コメント i_updusrnm ALIAS FOR $7; -- 更新ユーザーå i_updpcnm ALIAS FOR $8; -- 更新マシンå i_updcnt ALIAS FOR $9; -- UpdCnt cntcheck integer; nowdate timestamp; newupdcnt integer; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ -- IF kubun IS NULL OR kubun NOT IN (1,2,3) THEN RAISE EXCEPTION '処ç†åŒºåˆ†ãŒä¸æ£ã§ã™'; END IF; IF i_updusrnm IS NULL THEN RAISE EXCEPTION '更新ユーザーåã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_updpcnm IS NULL THEN RAISE EXCEPTION 'æ›´æ–°PCåã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF kubun IN (1,2) THEN IF i_itemcd IS NULL THEN RAISE EXCEPTION '商å“コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_usercd IS NULL THEN RAISE EXCEPTION 'ユーザーコードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_rankingrate IS NULL THEN RAISE EXCEPTION 'ランã‚ングã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_comment IS NULL THEN RAISE EXCEPTION 'コメントã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; IF kubun IN (2,3) THEN IF i_reviewcd IS NULL THEN RAISE EXCEPTION 'レビューコードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_updcnt IS NULL THEN RAISE EXCEPTION 'UpdCntã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; -- å˜åœ¨ãƒã‚§ãƒƒã‚¯ IF kubun IN (1,2) THEN SELECT itemcd INTO cntcheck FROM t_item_basic_attr WHERE itemcd = i_itemcd; IF NOT FOUND THEN RAISE EXCEPTION '商å“コードã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; SELECT membercd INTO cntcheck FROM t_member_basic_attr WHERE membercd = i_usercd; IF NOT FOUND THEN RAISE EXCEPTION 'ユーザーコードã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; END IF; IF kubun IN (2,3) THEN SELECT reviewcd INTO cntcheck FROM t_review WHERE reviewcd = i_reviewcd; IF NOT FOUND THEN RAISE EXCEPTION 'レビューコードã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT updcnt INTO cntcheck FROM t_review WHERE reviewcd = i_reviewcd; IF NOT FOUND OR cntcheck <> i_updcnt THEN errcd := -11; errmsg := '更新カウンタãŒä¸æ£'; RETURN; END IF; END IF; --- æ›´æ–°å‡¦ç† --- IF kubun = 1 THEN INSERT INTO t_review ( itemcd, usercd, rankingrate, comment, createdate, delflg, updusrnm, updpcnm, updcnt) VALUES( i_itemcd, i_usercd, i_rankingrate, i_comment, 'now', FALSE, i_updusrnm, i_updpcnm, 0); errcd := 1; errmsg := 'è¿½åŠ å®Œäº†'; code := lastval(); RETURN; -- æ›´æ–° ELSIF kubun = 2 THEN UPDATE t_review SET itemcd = i_itemcd, usercd = i_usercd, rankingrate = i_rankingrate, comment = i_comment, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE reviewcd = i_reviewcd; errcd := 1; errmsg := '変更完了'; code := i_reviewcd; RETURN; -- 削除 ELSIF kubun = 3 THEN UPDATE t_review SET delflg = TRUE, upddate = nowdate, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE reviewcd = i_reviewcd; errcd := 1; errmsg := '削除完了'; code := i_reviewcd; RETURN; END IF; END; $$ LANGUAGE 'plpgsql' VOLATILE;