You are on page 1of 4

editorial - area - bibliografico -hemerografico - electronico - recurso

-------------------------------------------------------------------------------------------EDITORIAL
-------------------------------------------------------------------------------------------Funcion consultar editorial
-------------------------------------------------------------------------------------------CREATE OR REPLACE FUNCTION editorial_lista
( IN PV_OPCION VARCHAR(10) default 'LISTATODO',
OUT id_e int,
OUT nombre_e varchar(100),
OUT direccion_e varchar(100),
OUT codigo_p varchar(100)
) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query select id_editorial, nombre_editorial, direccion_editorial, codi
go_postal from editorial;
END IF;
return;
end;
$BODY$
LANGUAGE 'plpgsql';
Select * From editorial_lista ('LISTATODO');
-------------------------------------------------------------------------------------------AREA
-------------------------------------------------------------------------------------------Funcion consultar area
-------------------------------------------------------------------------------------------CREATE OR REPLACE FUNCTION area_lista
( IN PV_OPCION VARCHAR(10) default 'LISTATODO' ) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query select * from area;
END IF;
return;
end;
$BODY$
LANGUAGE 'plpgsql';
Select * From area_lista ('LISTATODO') AS (id_area integer, nombre_area characte
r varying);
-------------------------------------------------------------------------------------------BIBLIOGRAFICO
-------------------------------------------------------------------------------------------Funcion consultar bibliografico
--------------------------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION bibliografico_lista


( IN PV_OPCION VARCHAR(10) default 'LISTATODO',
OUT id_b int,
OUT id_e int,
OUT issn_b varchar(20),
OUT numeroEdicion int,
OUT FechaPublicacion DATE,
OUT nombre_e varchar(100),
OUT direccion_e varchar(100),
OUT codigo_p varchar(100)
) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query SELECT b.id_bibliografico, b.id_editorial, b.issn_bibliografico,
b. numero_edicion, b.fecha_publicacion, e.nombre_editorial, e.direccion_editori
al, e.codigo_postal FROM bibliografico b
LEFT JOIN editorial e ON e.id_editorial=b.id_editorial;
END IF;
return;
end;
$BODY$
LANGUAGE 'plpgsql';
Select * From bibliografico_lista ('LISTATODO');
-------------------------------------------------------------------------------------------HEMEROGRAFICO
-------------------------------------------------------------------------------------------Funcion consultar hemerografico
-------------------------------------------------------------------------------------------CREATE OR REPLACE FUNCTION hemerografico_lista
( IN PV_OPCION VARCHAR(10) default 'LISTATODO',
OUT id_h int,
OUT id_e int,
OUT issn_h varchar(20),
OUT categoria_h varchar(25),
OUT numeroPublicacion int,
OUT FechaPublicacion_h DATE,
OUT nombre_e varchar(100),
OUT direccion_e varchar(100),
OUT codigo_p varchar(100)
) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query SELECT h.id_hemerografico, h.id_editorial, h.issn_hemerografico,
h. categoria_hemerografico, h. numero_publicacion, h.fecha_publicacion, e.nombr
e_editorial, e.direccion_editorial, e.codigo_postal FROM hemerografico h
LEFT JOIN editorial e ON e.id_editorial=h.id_editorial;
END IF;
return;
end;
$BODY$

LANGUAGE 'plpgsql';
Select * From hemerografico_lista ('LISTATODO');
-------------------------------------------------------------------------------------------ELECTRONICO
-------------------------------------------------------------------------------------------Funcion consultar electronico
-------------------------------------------------------------------------------------------CREATE OR REPLACE FUNCTION electronico_lista
( IN PV_OPCION VARCHAR(10) default 'LISTATODO',
OUT id_elec int,
OUT isbn_elec varchar(100),
OUT editor_elec varchar(100),
OUT direccion_elec varchar(100)
) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query select id_electronico, isbn_electronico, editor_electronica, dir
eccion_electronico from electronico;
END IF;
return;
end;
$BODY$
LANGUAGE 'plpgsql';
Select * From electronico_lista ('LISTATODO');
-------------------------------------------------------------------------------------------RECURSO
-------------------------------------------------------------------------------------------Funcion consultar recurso
-------------------------------------------------------------------------------------------CREATE OR REPLACE FUNCTION recurso_lista
( IN PV_OPCION VARCHAR(10) default 'LISTATODO',
OUT id_r int,
OUT id_a int,
OUT id_h int,
OUT id_el int,
OUT id_b int,
OUT titulo_r varchar(50),
OUT anio_r varchar(10),
OUT estado_r varchar(15),
OUT stock_r int,
OUT nombre_a varchar(30),
OUT issn_h varchar(20),
OUT categoria_h varchar(25),
OUT numero_p_h int,
OUT fecha_h DATE,
OUT isbn_el varchar(20),
OUT editor_el varchar(60),
OUT direccion_el varchar(60),

OUT id_ed int,


OUT issn_b varchar(20),
OUT numeroEdicion int,
OUT FechaPublicacion DATE,
OUT nombre_ed varchar(100),
OUT direccion_ed varchar(100),
OUT codigo_p varchar(100)
) RETURNS setof record AS
$BODY$
begin
IF PV_OPCION = 'LISTATODO' THEN
return query SELECT r.id_recurso, r.id_area, r.id_hemerografico, r.id_electro
nico, r.id_bibliografico, r.titulo_recurso, r.anio_recurso, r.estado_recurso, r.
stock,
a.nombre_area, h.issn_hemerografico, h.categoria_hemerografico, h.numero_publica
cion, h.fecha_publicacion,
el.isbn_electronico, el.editor_electronica, el.direccion_electronico,
b.id_editorial, b.issn_bibliografico, b. numero_edicion, b.fecha_publicacion, ed
.nombre_editorial, ed.direccion_editorial, ed.codigo_postal FROM recurso r
LEFT JOIN area a ON a.id_area=r.id_area
LEFT JOIN hemerografico h ON h.id_hemerografico=r.id_hemerografi
co
LEFT JOIN electronico el ON el.id_electronico=r.id_electronico
LEFT JOIN bibliografico b ON b.id_bibliografico=r.id_bibliografi
co
LEFT JOIN editorial ed ON ed.id_editorial=b.id_editorial;
END IF;
return;
end;
$BODY$
LANGUAGE 'plpgsql';
Select * From recurso_lista ('LISTATODO');
-------------------------------------------------------------------------------------------CREATE or replace FUNCTION area_listar() RETURNS SETOF record
LANGUAGE plpgsql
AS $$
DECLARE
Elemento RECORD;
BEGIN
FOR Elemento IN
SELECT id_area, nombre_area
FROM area
LOOP
RETURN NEXT Elemento;
END LOOP;
END;
$$;
select * from cargo_personal_listar() as (id_cargo_personal integer, nombre_carg
o_personal character varying);

You might also like