DROP FUNCTION f_cast_item_update_one(IN integer, IN integer, IN integer, IN integer, IN character varying, IN character varying, IN integer, OUT errcd integer, OUT errmsg character varying); CREATE OR REPLACE FUNCTION f_cast_item_update_one(IN integer, IN integer, IN integer, IN integer, 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; -- å“ç›®C i_castcd ALIAS FOR $3; -- ã‚ャストC i_disppriority ALIAS FOR $4; -- è¡¨ç¤ºé † i_updusrnm ALIAS FOR $5; -- 更新ユーザå i_updpcnm ALIAS FOR $6; -- 更新マシン i_updcnt ALIAS FOR $7; -- 更新マシン 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 castcd INTO cntcheck FROM t_cast_item WHERE itemcd = i_itemcd AND castcd = i_castcd; IF kubun = 2 AND NOT FOUND 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; SELECT castcd INTO cntcheck FROM t_cast WHERE castcd = i_castcd; IF NOT FOUND THEN errmsg := 'ã‚ャストテーブルã«å˜åœ¨ã—ãªã„ã‚ャストコード'; errcd := -10; RETURN; END IF; -- æ›´æ–°å‡¦ç† -- IF kubun = 1 THEN SELECT castcd INTO cntcheck FROM t_cast_item WHERE itemcd = i_itemcd AND castcd = i_castcd; IF FOUND THEN -- æ›´æ–° UPDATE t_cast_item SET delflg = FALSE, disppriority = i_disppriority, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE itemcd = i_itemcd AND castcd = i_castcd; errcd := 1; RETURN; ELSEIF NOT FOUND THEN -- è¿½åŠ INSERT INTO t_cast_item (castcd, itemcd, disppriority, updusrnm, updpcnm) VALUES(i_castcd, i_itemcd, i_disppriority, i_updusrnm, i_updpcnm); errcd := 1; RETURN; END IF; ELSIF kubun = 2 THEN -- 削除 UPDATE t_cast_item SET delflg = TRUE, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE itemcd = i_itemcd AND castcd = i_castcd; errcd := 1; RETURN; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;