-- å“目ウェブ属性テーブル 変更 CREATE OR REPLACE FUNCTION f_consumer_attr_update( IN integer, IN integer, IN varchar, IN integer, IN varchar, IN varchar, IN varchar, IN varchar,IN varchar, IN integer, IN varchar, IN varchar,IN varchar,IN varchar,IN varchar, IN varchar, IN integer, OUT errcd integer, OUT errmsg character varying, OUT code integer) AS $BODY$ DECLARE kubun ALIAS FOR $1; -- 区分 i_membercd ALIAS FOR $2; -- 会員C i_postalcd ALIAS FOR $3; -- éƒµä¾¿ç•ªå· i_prefcd ALIAS FOR $4; -- 都é“府県C i_addr1 ALIAS FOR $5; -- 使‰€ï¼‘ i_addr2 ALIAS FOR $6; -- 使‰€ï¼’ i_telno1 ALIAS FOR $7; -- 電話番å·ï¼‘ i_telno2 ALIAS FOR $8; -- 電話番å·ï¼’ i_sendpostalcd ALIAS FOR $9; -- é€ä»˜å…ˆéƒµä¾¿ç•ªå· i_sendprefcd ALIAS FOR $10; -- é€ä»˜å…ˆéƒ½é“府県C i_sendaddr1 ALIAS FOR $11; -- é€ä»˜å…ˆä½æ‰€ï¼‘ i_sendaddr2 ALIAS FOR $12; -- é€ä»˜å…ˆä½æ‰€ï¼’ i_sendtelno1 ALIAS FOR $13; -- é€ä»˜å…ˆé›»è©±ç•ªå·ï¼‘ i_addressee ALIAS FOR $14; -- é€ä»˜å…ˆå®›å i_updusrnm ALIAS FOR $15; -- 更新ユーザå i_updpcnm ALIAS FOR $16; -- 更新マシンå i_updcnt ALIAS FOR $17; -- 更新カウンタ sql1 varchar; cntcheck integer; makerc integer; labelc integer; MES_001 varchar = '会員コード' || i_membercd || 'ã¯ç™»éŒ²æ¸ˆã¿ã§ã™'; 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 (1,2,3) THEN IF i_membercd IS NULL THEN RAISE EXCEPTION '会員コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; 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 IF i_updcnt IS NULL THEN RAISE EXCEPTION '更新カウンタã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; -- å˜åœ¨ãƒã‚§ãƒƒã‚¯ IF kubun IN (1,2,3) THEN SELECT membercd INTO cntcheck FROM t_member_basic_attr WHERE membercd = i_membercd; IF NOT FOUND THEN RAISE EXCEPTION 'ãã®ä¼šå“¡ã‚³ãƒ¼ãƒ‰ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã¯å˜åœ¨ã—ã¾ã›ã‚“'; END IF; END IF; IF kubun IN (1) THEN SELECT membercd INTO cntcheck FROM t_consumer_attr WHERE membercd = i_membercd; IF FOUND THEN RAISE EXCEPTION 'ãã®ä¼šå“¡ã‚³ãƒ¼ãƒ‰ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã¯å˜åœ¨ã—ã¾ã™'; END IF; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ IF kubun IN (2,3) THEN SELECT updcnt INTO cntcheck FROM t_consumer_attr WHERE membercd = i_membercd; IF NOT FOUND OR cntcheck <> i_updcnt THEN errcd = -11; errmsg = '更新カウンタãŒä¸æ£'; RETURN; END IF; END IF; --- æ›´æ–°å‡¦ç† --- IF kubun = 1 THEN -- è¿½åŠ INSERT INTO t_consumer_attr( membercd, postalcd, prefcd, addr1, addr2, telno1, telno2, sendpostalcd, sendprefcd, sendaddr1, sendaddr2, sendtelno1, addressee, updusrnm, updpcnm )VALUES( i_membercd, i_postalcd, i_prefcd, i_addr1, i_addr2, i_telno1, i_telno2, i_sendpostalcd, i_sendprefcd, i_sendaddr1, i_sendaddr2, i_sendtelno1, i_addressee, i_updusrnm, i_updpcnm ); errcd = 1; RETURN; -- 変更 ELSIF kubun = 2 THEN -- 更新ユーザ UPDATE t_consumer_attr SET postalcd = i_postalcd, prefcd = i_prefcd, addr1 = i_addr1, addr2 = i_addr2, telno1 = i_telno1, telno2 = i_telno2, sendpostalcd = i_sendpostalcd, sendprefcd = i_sendprefcd, sendaddr1 = i_sendaddr1, sendaddr2 = i_sendaddr2, sendtelno1 = i_sendtelno1, addressee = i_addressee, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE membercd = i_membercd; errcd = 1; --errmsg = sql1; code = i_membercd; RETURN; -- 削除 ELSIF kubun =3 THEN UPDATE t_consumer_attr SET delflg = TRUE, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE membercd = i_membercd; errcd = 1; code = i_membercd; RETURN; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;