CREATE OR REPLACE FUNCTION f_import_genre_item(IN itemcode integer, IN genrecode integer[], IN genrename character varying[], IN usr character varying, OUT errcd integer, OUT errmsg character varying) AS $BODY$ DECLARE genre integer; i integer; flg integer; BEGIN errcd := 1; i := 1; IF itemcode IS NULL THEN errmsg := 'å“ç›®ã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; IF usr IS NULL THEN errmsg := 'æ›´æ–°ãƒ¦ãƒ¼ã‚¶ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“。'; errcd := -10; RETURN; END IF; delete from t_genre_item where itemcd = itemcode; LOOP flg := 1; IF genrecode[i] = 0 AND genrename[i] = 'NULL' THEN flg := 0; ELSIF genrecode[i] <> 0 THEN SELECT genrecd INTO genre FROM t_genre WHERE genrecd = genrecode[i]; IF genre IS NULL THEN errmsg := genrecode[i] || 'ã¯ã‚¸ãƒ£ãƒ³ãƒ«ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“'; errcd := -10; RETURN; END IF; ELSIF genrecode[i] = 0 THEN -- ジャンルåã‹ã‚‰ã‚¸ãƒ£ãƒ³ãƒ«ã‚³ãƒ¼ãƒ‰å–å¾— SELECT genrecd INTO genre FROM t_genre WHERE genrenm = genrename[i]; IF genre IS NULL THEN errmsg := genrename[i] || 'ã¯ã‚¸ãƒ£ãƒ³ãƒ«ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“'; errcd := -10; RETURN; END IF; END IF; -- è¿½åŠ IF flg = 1 THEN INSERT INTO t_genre_item(genrecd, itemcd, updusrnm) VALUES(genre, itemcode, usr); END IF; -- ループ終了 i := i + 1; IF genrecode[i] IS NULL AND genrename[i] IS NULL THEN EXIT; END IF; END LOOP; errcd := 1; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;