Re: Existe alguna funcion que haga lo mismo que split?
- From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
- To: btorres(at)cajanorperu(dot)com(dot)pe
- Cc: pgsql-es-ayuda(at)postgresql(dot)org
- Subject: Re: Existe alguna funcion que haga lo mismo que split?
- Date: Sun, 30 Mar 2008 14:33:02 -0500
- Message-id: <c2d9e70e0803301233r1c644badwebf5eb8bacaeb5cb(at)mail(dot)gmail(dot)com>
On Sun, Mar 30, 2008 at 1:47 PM, Brando Torres
<btorres(at)cajanorperu(dot)com(dot)pe> wrote:
> >
> > Estoy teniendo el sigueinte error:
> >
> > ERROR: syntax error at or near "$1"
> > LINE 1: $1
> > ^
> > QUERY: $1
> > CONTEXT: SQL statement in PL/PgSQL function "inserta_observacion"
> > near line 12
> >
> > ********** Error **********
> >
> > ERROR: syntax error at or near "$1"
> > SQL state: 42601
> > Context: SQL statement in PL/PgSQL function "inserta_observacion" near
> > line 12
> >
estas accesando de forma incorrecta el array, te adjnto en un archivo
una forma de hacerlo... quiza haya una mejor pero no la conozco...
--
Atentamente,
Jaime Casanova
Create or Replace Function seguimiento.inserta_observacion(int,char,char,varchar,char,text,varchar,varchar,text,varchar,varchar)
Returns Text As
$body$
Declare
mensaje varchar(500);
codigos_area varchar Array[6];
area varchar;
i int;
Begin
Insert Into seguimiento.observaciones Values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);
If Not Found Then
Raise Exception '%',mensaje;
Else
Select string_to_array($11,'|') Into codigos_area;
-- For area in codigos_area
i = 1;
Loop
exit when codigos_area[i] is null;
area = codigos_area[i];
If area <> '-' Then
Insert Into seguimiento.area_observacion values($1,area);
if Not Found Then
Raise Exception '%',mensaje;
Else
mensaje = 'OK';
End If;
End If;
i = i + 1;
End Loop;
End If;
return mensaje;
End;
$body$
Language 'plpgsql';
Home |
Main Index |
Thread Index