Exercicios banco de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (980 palavras )
  • Download(s) : 0
  • Publicado : 21 de dezembro de 2012
Ler documento completo
Amostra do texto
Exercício 02) Crie uma função que facilite o cadastro de funcionários. A função deve receber como parâmetro os campos: nome, data de nascimento e numero do departamento ao qual pertence.--Cadastro de usuário
CREATE OR REPLACE FUNCTION cad_funcionario(nome varchar(40), data_nasc date, departamento int, salario float) returns void as $$
BEGIN
insert intofuncionario(num_departamento, nome, data_nasc, salario) values(departamento, nome, data_nasc, salario);
END;
$$ LANGUAGE plpgsql;

Exercício 03) Faça o mesmo procedimento do exercício 2 para as tabelas departamentoe projeto.

--Cadastro de departamento
CREATE OR REPLACE FUNCTION cad_departamento(nome varchar(40), gerente int) returns void as $$
BEGIN
insert into departamento(nome, cod_gerente)values(nome, gerente);
END;
$$ LANGUAGE plpgsql;

--Cadastro de projeto
CREATE OR REPLACE FUNCTION cad_projeto(departamento int, nome varchar(40), duracao interval) returns void as $$BEGIN
insert into projeto(num_departamento, nome, duracao) values(departamento, nome, duracao);
END;
$$ LANGUAGE plpgsql;

Exercício 04) Crie uma função que receba como parâmetro onúmero de um departamento e retorne o
total de horas trabalhadas pelo seu gerente.

--Horas trabalhadas do gerente
CREATE OR REPLACE FUNCTION horas_gerente(num_departamento int) returns interval as$$
DECLARE

rs1 RECORD;
rs2 RECORD;
total_horas interval;

BEGIN
select into rs1 cod_gerente from departamento where cod_departamento = num_departamento;total_horas:='00:00:00';

for rs2 in select * from participa where cod_funcionario = rs1.cod_gerente loop
total_horas = total_horas + rs2.horas_trabalho;
end loop;

RETURN total_horas;

END;
$$ LANGUAGEplpgsql;


Exercício 05) Crie uma função que some as horas trabalhadas em cada projeto e atualize a duração dos
mesmos (em dias).

--Horas trabalhadas no projeto
CREATE OR REPLACE FUNCTION...
tracking img