create or replace function fn_categoria(id int) returns varchar as $$
declare
x varchar;
begin
x=(select cat_nombre from categorias where cat_id=id);
return x;
end;
$$ language plpgsql
select fn_categoria(1);
create table categorias (
cat_id int,
cat_nombre varchar
);
insert into categorias (cat_id,cat_nombre)
values (5,'Hogar');
select * from categorias;
-------------------------------------------------------------------------
Con una función, dependiendo de un parámetro de entrada que podrá ser: cinco o todos, listar de la tabla “categorias” el respectivo número de registros.
create or replace function listarCategorias(opcion varchar,out c1 int, out c2 varchar) returns setof record as $$
begin
if opcion='cinco' then
return query select * from categorias limit 3;
end if;
if opcion='todos' then
return query select * from categorias;
end if;
end;
$$ language plpgsql
select * from listarCategorias('tres');
create table categorias (
cat_id int,
cat_nombre varchar
);
insert into categorias (cat_id,cat_nombre)
values (5,'Hogar');
select * from categorias;
Crear una función para insertar una categoría, enviando como parámetro el nombre de la categoría, y finalmente mostrar el registro reciente insertado.
create or replace function insertarMostrar(nombre varchar, codigo int, out c1 int, out c2 varchar) returns setof RECORD as $$
begin
insert into categorias(cat_nombre, cat_id) values(nombre, codigo);
return query select * from categorias order by cat_id desc limit 1;
end;
$$ language plpgsql
select*from insertarMostrar('Verduras',2);
drop table categorias;
create table categorias (
cat_id int,
cat_nombre varchar
);
select * from categorias;
CREATE TABLE prueba
(
idprueba integer,
descripcion varchar(40),
PRIMARY KEY(idprueba)
);
create or replace function abm_prueba(band numeric, cidprueba integer, cdescripcion varchar) returns void as $$
begin
case band
when 1 then
INSERT INTO prueba VALUES (cidprueba, cdescripcion);
when 2 then
update prueba set descripcion=cdescripcion where idprueba=cidprueba;
when 3 then
delete from prueba where idprueba=cidprueba;
end case;
end
$$ language plpgsql;
select abm_prueba(3,2,'PISA');
select * from prueba;
_______________________________________
Crear una función para insertar una categoría, enviando como parámetro el nombre de la categoría, y finalmente mostrar el registro reciente insertado.
create or replace function insertarMostrar(nombre varchar, codigo int, out c1 int, out c2 varchar) returns setof RECORD as $$
begin
insert into categorias(cat_nombre, cat_id) values(nombre, codigo);
return query select * from categorias order by cat_id desc limit 1;
end;
$$ language plpgsql
select*from insertarMostrar('Verduras',2);
drop table categorias;
create table categorias (
cat_id int,
cat_nombre varchar
);
select * from categorias;
________________________________________
Crear un procedimiento almacenado que lea 3 parámetros, el primero será para identificar el caso, el segundo es un parámetro del id y el tercero es la descripción para la tabla prueba, si el número ingresado en el primer parámetro es 1, se deberá realizar una inserción en la tabla pruebas con los parámetros 2 y 3. si el primer parámetro es 2 se debe realizar una actualización del registro correspondiente al id enviado en el parámetro 2 y se debe actualizar la descripción del parámetro 3. Y finalmente si el parámetro 1 es igual a 3, se debe eliminar el registro correspondiente al id enviado en el parámetro 2.
CREATE TABLE prueba
(
idprueba integer,
descripcion varchar(40),
PRIMARY KEY(idprueba)
);
create or replace function abm_prueba(band numeric, cidprueba integer, cdescripcion varchar) returns void as $$
begin
case band
when 1 then
INSERT INTO prueba VALUES (cidprueba, cdescripcion);
when 2 then
update prueba set descripcion=cdescripcion where idprueba=cidprueba;
when 3 then
delete from prueba where idprueba=cidprueba;
end case;
end
$$ language plpgsql;
select abm_prueba(3,2,'PISA');
select * from prueba;
No hay comentarios.:
Publicar un comentario