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/
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 |