Hola, una duda si tu le estas mandando el parametro al Script de postgre:
@PageNumber NVARCHAR(MAX), por que no se lo mandas como INT4 asi al tomar el valor no tienes tantos problemas y ademas es un poco mas natural que hacer un casteo
Código PostgreSQL:
Ver originalCREATE OR REPLACE FUNCTION x ( INT4 )
RETURNS INT4 AS
.
.
.
DECLARE
nPagina ALIAS FOR $1;
nTotalPaginas INT4
BEGIN
SET nTotalPaginas := nPagina - 1;
RETURN nTotalPaginas;
END;
Asi puedes hacer la resta mas comodamente, bueno es una sugerencia