CREATE OR REPLACE FUNCTION f_rankingrate_update(
    IN _itemcd integer, -- 商品C
    IN _rank integer,   -- ランク
    IN _user varchar,   -- 更新ユーザ
    IN _ipaddr varchar, -- 更新マシン

    OUT errcd integer,
    OUT errmsg character varying
) AS
$BODY$

DECLARE
     cntcheck integer;
BEGIN

    IF _itemcd IS NULL THEN
        errmsg := '品目コードが指定されていません。';
        errcd := -10;
        RETURN;
    END IF;

    IF _rank IS NULL THEN
        errmsg := 'ジャンルコードが指定されていません。';
        errcd := -10;
        RETURN;
    END IF;

    IF _user IS NULL THEN
        errmsg := '更新ユーザ名が指定されていません。';
        errcd := -10;
        RETURN;
    END IF;

    IF _ipaddr IS NULL THEN
        errmsg := '更新マシンが指定されていません。';
        errcd := -10;
        RETURN;
    END IF;

 -- 存在チェック --
    SELECT itemcd INTO cntcheck FROM t_item_web_attr WHERE itemcd = _itemcd;
    IF NOT FOUND THEN
        errmsg := '品目基本属性テーブルに存在しない品目コード';
        errcd := -10;
        RETURN;
    END IF;


 -- 更新処理 --
    UPDATE t_item_web_attr SET rankingrate = _rank, updusrnm = _user, updpcnm = _ipaddr WHERE itemcd = _itemcd;

    errcd := 1;
    errmsg := '完了';
    RETURN;
END;

$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
