0

함수를 만들려고하는데 오류가있는 경우 If 문에서 문제가 무엇인지 모릅니다.PostgreSQL의 구문이 잘못되었습니다.

CREATE FUNCTION uspgetcountrylistwithpagenumber(IN "PageNumber" integer, IN "PageSize"   integer, IN "WhereClause" text, IN "OrderBy" text) RETURNS SETOF getcountrylistitem AS 
$BODY$declare 
RowData "getcountrylistitem"%rowtype; 

    IF $1 <> -1 and $2 <> -1 then 
     for RowData in 
     loop 
      execute 'Select "CountryId","CountryName"' || 
        'from "MasterCountry"' || 
        $3 || 
        $4 || 
        'limit' || $2 || 
        'offset' || ($1-1)*$2   
      RETURN NEXT RowData; 
     END LOOP; 
     RETURN;  
    else 
     for RowData in 
     loop 
      execute 'Select "CountryId","CountryName"' || 
        'from "MasterCountry"' || 
        'order by "CountryName" asc' 
      RETURN NEXT RowData; 
      END LOOP; 
      RETURN; 
    end IF; 
end; 
$BODY$ 
LANGUAGE plpgsql IMMUTABLE; 
ALTER FUNCTION public.uspgetcountrylistwithpagenumber(IN integer, IN integer, IN text, IN text) 
OWNER TO postgres; 

란 전 달성하고자하면 I가 PAGENUMBER, 페이지 크기, WhereClause 및 OrderByClause

걸릴 수있는 기능
PageNumber=1 
PageSize=10 
WhereClause=Where 1=1 and CountryName='INDIA' 
OrderByClause=order by CountryName desc 

위에서 될 수 파라미터 값이다 가지고 싶은 지정 페이징 .. 인 내 문제를 해결하는 데 도움이됩니다. 자세한 정보가 필요한 경우 알려주십시오. 미리 감사드립니다 : P

+2

함수 본문의 시작 부분을 표시하기 위해'begin'이 표시되지 않습니다. –

답변

1

첫 번째 IF 앞에 BEGIN이 필요합니다.

관련 문제