Postgresql Postgre SQL在If附近的语法不正确
我试图创建函数,但它在If语句中出错,我不知道它有什么问题Postgresql Postgre SQL在If附近的语法不正确,postgresql,postgresql-9.1,postgresql-9.2,rails-postgresql,Postgresql,Postgresql 9.1,Postgresql 9.2,Rails Postgresql,我试图创建函数,但它在If语句中出错,我不知道它有什么问题 CREATE FUNCTION uspgetcountrylistwithpagenumber(IN "PageNumber" integer, IN "PageSize" integer, IN "WhereClause" text, IN "OrderBy" text) RETURNS SETOF getcountrylistitem AS $BODY$declare RowData "getcountrylist
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;
以上是有助于解决问题的参数值
如果需要更多信息,请告诉我。提前感谢您:P
您需要在第一个
IF
之前使用开始
标记函数体的开始,我没有看到开始
。
PageNumber=1
PageSize=10
WhereClause=Where 1=1 and CountryName='INDIA'
OrderByClause=order by CountryName desc