Re: crash postgres

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: crash postgres
Date: 2008-12-09 21:21:28
Message-ID: 92567.36162.qm@web52102.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

lo que tiene el archivo sql son llamadas a una funcion que carga los datos de personas (una renglon por cada persona...
Debajo se las paso por si les sirve...

CREATE OR REPLACE FUNCTION padrones.cargaper(oper smallint, documento character varying, tipodoc smallint, nombre character varying, sexo character varying, otros character varying, fechanac timestamp without time zone, locali character varying, provin character varying, direcci character varying)
RETURNS void AS
$BODY$
declare
clavelugar integer;
claveprovincia integer;
begin
select padrones.provincias.codprov into claveprovincia FROM padrones.provincias where (padrones.provincias.provincia=trim(provin));
if claveprovincia IS NULL then
if character_length(trim(provin))>0 then
execute 'INSERT INTO padrones.provincias (provincia) VALUES ('''|| trim(provin)||''');';
select padrones.provincias.codprov into claveprovincia FROM padrones.provincias where (padrones.provincias.provincia=trim(provin));
else
claveprovincia=0;
end if;
end if;
select padrones.localidades.claveloc into clavelugar FROM padrones.localidades where (padrones.localidades.nombreloc=trim(locali));
if clavelugar IS NULL then
if character_length(trim(locali))>0 then
execute 'INSERT INTO padrones.localidades (nombreloc,claveprov) VALUES ('''|| trim(locali)||''','|| claveprovincia||');';
select padrones.localidades.claveloc into clavelugar FROM padrones.localidades where (padrones.localidades.nombreloc=trim(locali));
else
clavelugar=0;
end if;
end if;

if oper=1 then -- insert
execute 'INSERT INTO padrones.personas (numdoc, tipodoc, nombre, sexo, datos, fechanac) VALUES ('''|| trim(documento)||''' , '||tipodoc||' , '''||trim(nombre)||''' , '''||trim(sexo)||''' , '''||trim(otros)||''', '''||fechanac||''');';
execute 'INSERT INTO padrones.personaloc (documento, tipodoc, claveloc, direccion) VALUES ('''||trim(documento)||''' , '||tipodoc||', '||clavelugar||','''||trim(direcci)||''');';
else --update
execute 'UPDATE padrones.personas SET nombre='''||trim(nombre)||''' , sexo='''||trim(sexo)||''' , datos='''||trim(otros)||''', fechanac='''||fechanac||''' WHERE (numdoc='''|| trim(documento)||''' and tipodoc='||tipodoc||');';
if not exists (select padrones.personaloc.claveloc FROM padrones.personaloc where (documento=trim(documento) and tipodoc=tipodoc and direccion=trim(direcci))) then
execute 'INSERT INTO padrones.personaloc (documento, tipodoc, claveloc,direccion) VALUES ('''|| trim(documento)||''' , '||tipodoc||', '||clavelugar||','''||trim(direcci)||''');';
end if;
end if;
--return nombre;
--RETURN true;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION padrones.cargaper(smallint, character varying, smallint, character varying, character varying, character varying, timestamp without time zone, character varying, character varying, character varying) OWNER TO gferro;

Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Arévalo 2008-12-09 21:22:50 sobre postgres/postgis
Previous Message Diego Gil 2008-12-09 21:20:03 Re: sobre postgres/postgis