-- 会員基本属性テーブル 変更 CREATE OR REPLACE FUNCTION f_member_basic_attr_update(IN integer, IN integer, IN integer, IN varchar, IN varchar, IN varchar, IN varchar, IN varchar, IN varchar, IN varchar, IN varchar, IN integer, IN varchar, IN date, IN integer, IN varchar, IN integer, IN integer, IN date, 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_memberdiv ALIAS FOR $3; -- 会員区分 i_lastnm ALIAS FOR $4; -- å§“ i_firstnm ALIAS FOR $5; -- å i_lastnmkana ALIAS FOR $6; -- 姓(ã‹ãªï¼‰ i_firstnmkana ALIAS FOR $7; -- å(ã‹ãªï¼‰ i_mailaddr ALIAS FOR $8; -- メールアドレス i_mobmailaddr ALIAS FOR $9; -- æºå¸¯é›»è©±ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ i_password ALIAS FOR $10; -- パスワード i_nicknm ALIAS FOR $11; -- ニックãƒãƒ¼ãƒ i_secquestioncd ALIAS FOR $12; -- 秘密ã®è³ªå•C i_secquestionans ALIAS FOR $13; -- 秘密ã®è³ªå•ã®ç”㈠i_birthdate ALIAS FOR $14; -- 数値生年月日 i_sex ALIAS FOR $15; -- 性別 i_selfintro ALIAS FOR $16; -- 自己紹介 i_memberstate ALIAS FOR $17; -- 会員状態 i_maildiv ALIAS FOR $18; -- メール区分 i_registdate ALIAS FOR $19; -- 登録日 i_updusrnm ALIAS FOR $20; -- 更新ユーザå i_updpcnm ALIAS FOR $21; -- 更新マシンå i_updcnt ALIAS FOR $22; -- 更新カウンタ 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 (2,3) THEN IF i_membercd IS NULL THEN RAISE EXCEPTION '会員コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_updcnt IS NULL THEN RAISE EXCEPTION '更新カウンタã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; END IF; IF kubun IN (1) THEN IF i_lastnm IS NULL THEN RAISE EXCEPTION 'å§“ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_firstnm IS NULL THEN RAISE EXCEPTION 'åã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_lastnmkana IS NULL THEN RAISE EXCEPTION 'å§“(ã‹ãª)ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_firstnmkana IS NULL THEN RAISE EXCEPTION 'å(ã‹ãª)ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_mailaddr IS NULL THEN RAISE EXCEPTION 'メールアドレスã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_password IS NULL THEN RAISE EXCEPTION 'パスワードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_secquestioncd IS NULL THEN RAISE EXCEPTION '秘密ã®è³ªå•コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_secquestionans IS NULL THEN RAISE EXCEPTION '秘密ã®è³ªå•ã®ç”ãˆã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_sex IS NULL THEN RAISE EXCEPTION '性別ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_memberstate IS NULL THEN RAISE EXCEPTION '会員状態ã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; IF i_registdate 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 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 (2,3) THEN SELECT updcnt INTO cntcheck FROM t_member_basic_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_member_basic_attr( memberdiv, lastnm, firstnm, lastnmkana, firstnmkana, mailaddr, mobmailaddr, password, nicknm, secquestioncd, secquestionans, birthdate, sex, selfintro, memberstate, maildiv, registdate, updusrnm, updpcnm) VALUES( i_memberdiv, i_lastnm, i_firstnm, i_lastnmkana, i_firstnmkana, i_mailaddr, i_mobmailaddr, i_password, i_nicknm, i_secquestioncd, i_secquestionans, i_birthdate, i_sex, i_selfintro, i_memberstate, i_maildiv, i_registdate, i_updusrnm, i_updpcnm ); errcd := 1; code := lastval(); RETURN; -- 変更 ELSIF kubun = 2 THEN UPDATE t_member_basic_attr SET memberdiv= i_memberdiv, lastnm= i_lastnm, firstnm= i_firstnm, lastnmkana= i_lastnmkana, firstnmkana= i_firstnmkana, mailaddr= i_mailaddr, mobmailaddr= i_mobmailaddr, password= i_password, nicknm= i_nicknm, secquestioncd= i_secquestioncd, secquestionans= i_secquestionans, birthdate= i_birthdate, sex = i_sex, selfintro= i_selfintro, memberstate= i_memberstate, maildiv= i_maildiv, updusrnm = i_updusrnm, updpcnm= i_updpcnm WHERE membercd= i_membercd; errcd := 1; code := i_membercd; RETURN; -- 削除 ELSIF kubun =3 THEN UPDATE t_member_basic_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;