1

getoperatordetailspostgresql データベースにストアド プロシージャを作成します。

別のストアド プロシージャで 3 つのパラメーターを取得しましたが、エラーが発生しました。エラーを回避し、結果を True (または) False にします。

 CREATE OR REPLACE FUNCTION getoperatordetails(value character varying, operator     character varying, fieldinputvalue character varying, retvalue boolean)
      RETURNS SETOF boolean AS
    $BODY$
    declare
    iVal numeric;
    gVal numeric;
    begin
    IF fieldInputValue != ' ' AND operator!='equal' THEN

    gVal := value :: numeric;
    iVal := fieldInputValue:: numeric;

    IF (operator = ('lesserThan') AND iVal < gVal) THEN
    retValue= true;

    ELSIF (operator = ('greaterThan') AND iVal > gVal) THEN
    retValue= true;

    ELSIF (operator = ('lessOrEqual') AND iVal <= gVal) THEN
    retValue= true;

    ELSIF (operator = ('greaterOrEqual') AND iVal >= gVal) THEN
    retValue= true;

    ELSIF (operator = ('equal') AND value = (fieldInputValue)) THEN
    retValue= true;

    ELSE
    retValue= false;

    END IF;

    ELSIF (operator=('equal') AND value=(fieldInputValue)) THEN
    retValue= true;

    ELSE
    retValue= false;

    END IF;
    return next retValue;
    end;

    $BODY$
      LANGUAGE plpgsql VOLATILE
      COST 100
      ROWS 1000;
    ALTER FUNCTION getoperatordetails(character varying, character varying, character varying, boolean)
      OWNER TO postgres;

結果を True (または) False にする必要があります

エラー: AND の引数はセットを返してはいけません
LINE 1: SELECT retValue AND getoperatordetails(value, operator, fiel...)

4

1 に答える 1