-- 商å“ダウンãƒãƒ¼ãƒ‰ãƒ†ãƒ¼ãƒ–ル 変更 --DROP FUNCTION f_dl_item_update(); CREATE OR REPLACE FUNCTION f_dl_item_update( IN kubun integer, IN _itemcd integer, IN _structcd integer, IN _fileexistence boolean, IN _dlcount integer, IN _dlperioddays integer, IN _comment text, IN usr character varying, IN ipaddr character varying, IN count integer, OUT errcd integer, OUT errmsg character varying, OUT code integer) AS $BODY$ DECLARE sql1 varchar; sql2 varchar; cntcheck integer; makerc integer; labelc integer; MES_001 varchar := 'å“目コード' || _itemcd || 'ã¯ç™»éŒ²æ¸ˆã¿ã§ã™'; MES_002 varchar := 'å“åãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ -- --SELECT itemcd INTO cntcheck FROM t_item_basic_attr WHERE itemcd=itemcode AND structcd = structcode; -- 処ç†åŒºåˆ† IF kubun IS NULL OR kubun NOT IN (1,2,3) THEN RAISE EXCEPTION '処ç†åŒºåˆ†ãŒä¸æ£ã§ã™'; END IF; IF kubun IN (2,3) THEN IF _structcd IS NULL THEN RAISE EXCEPTION 'æ§‹æˆã‚³ãƒ¼ãƒ‰ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF count IS NULL THEN RAISE EXCEPTION '更新カウンタã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; IF kubun IN (1,2,3) THEN IF _itemcd IS NULL THEN RAISE EXCEPTION 'å“目コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF _structcd IS NULL THEN RAISE EXCEPTION 'æ§‹æˆã‚³ãƒ¼ãƒ‰ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF usr IS NULL THEN RAISE EXCEPTION 'æ›´æ–°ãƒ¦ãƒ¼ã‚¶ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; END IF; -- 更新マシン(IPアドレス)ã®ãƒã‚§ãƒƒã‚¯ã¯ã¨ã‚Šã‚ãˆãšã—ãªã„ -- å˜åœ¨ãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT itemcd INTO cntcheck FROM t_dl_item WHERE itemcd = _itemcd AND structcd = _structcd; IF NOT FOUND THEN RAISE EXCEPTION 'ãã®å“ç›®ã‚³ãƒ¼ãƒ‰ã¨æ§‹æˆã‚³ãƒ¼ãƒ‰ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT updcnt INTO cntcheck FROM t_dl_item WHERE itemcd = _itemcd AND structcd = _structcd; IF NOT FOUND OR cntcheck <> count THEN errcd := -11; errmsg := '更新カウンタãŒä¸æ£'; RETURN; END IF; END IF; ---æ›´æ–°å‡¦ç† --- IF kubun = 1 THEN -- è¿½åŠ INSERT INTO t_dl_item( itemcd, structcd, fileexistence, dlcount, dlperioddays, comment, updusrnm, updpcnm ) VALUES ( _itemcd, _structcd, _fileexistence, _dlcount, _dlperioddays, _comment, usr, ipaddr ); errcd := 1; RETURN; ELSIF kubun = 2 THEN UPDATE t_dl_item SET fileexistence = _fileexistence, dlcount = _dlcount, dlperioddays = _dlperioddays, comment = _comment, updusrnm = usr, updpcnm = ipaddr WHERE itemcd = _itemcd AND structcd = _structcd; errcd := 1; code := _itemcd; RETURN; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;