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/
--
TIP 5: ¿Has leído nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html