Cita:
pero cuando ejecutocreate or replace function pa_validaruc(xruc text)
RETURNS integer AS
$BODY$
DECLARE
i integer;
residuo integer;
ultdigito integer;
aruc integer[][];
BEGIN
if length(xruc)<>11 then
return 0;
end if;
FOR i IN 0..10 LOOP
aruc[0][i]:=cast(substring(xruc,i+1,1) as integer);
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
RETURNS integer AS
$BODY$
DECLARE
i integer;
residuo integer;
ultdigito integer;
aruc integer[][];
BEGIN
if length(xruc)<>11 then
return 0;
end if;
FOR i IN 0..10 LOOP
aruc[0][i]:=cast(substring(xruc,i+1,1) as integer);
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
SELECT pa_validaruc('10141401538');
me sale este error:
ERROR: los subíndices de arrays están fuera de rango
CONTEXT: PL/pgSQL function "pa_validaruc" line 11 at asignación
********** Error **********
ERROR: los subíndices de arrays están fuera de rango
SQL state: 2202E
Context: PL/pgSQL function "pa_validaruc" line 11 at asignación
al parecer el error esta en esta linea:
aruc[0][i]:=cast(substring(xruc,i+1,1) as integer);
pero no encuentro la forma de arreglarlo, les agradeceria una manito
atte
edwinsp