Exercicio Extra Procedimentos Plsql 1sem2015

download Exercicio Extra Procedimentos Plsql 1sem2015

of 4

description

Exercicio Extra Procedimentos Plsql 1sem2015

Transcript of Exercicio Extra Procedimentos Plsql 1sem2015

  • MINISTRIO DA EDUCAO CENTRO FEDERAL DE EDUCAO TECNOLGICA DE MINAS GERAIS DEPARTAMENTO DE COMPUTAO

    Engenharia de Computao Banco de Dados I 5o Perodo 1o Semestre de 2015 Prof. Evandrino G. Barros ([email protected])

    Exerccio extra de PL/SQL - Individual 03/06/2015 2 pontos Siga o roteiro a seguir, executando os comandos apresentados, os quais, devem ser apresentados no relatrio a ser entregue via Moodle individulmente, assim como os seus resultados. No final, h um exerccio, cujos comandos de resposta e resultados devem ser tambm includo no relatrio. I) ROTEIRO 1) Criar as seguintes tabelas no Oracle atravs do SQL Developer

    Create table dep1 ( codigo number(5) primary key, nome varchar2(20) not null); Create table emp1 ( mat number(5) primary key, nome varchar2(30) not null, salario number(9,2) not null, coddep number(5) references dep1 (codigo)); 2) Inserir os seguintes dados nas tabelas

    Insert into dep1 values (10, 'Vendas'); Insert into dep1 values (20,'TI'); Insert into emp1 values (1000,'Antonio Silva',2000,10); Insert into emp1 values (2000,'Ana Santos',3000,20); 3) Criar o seguinte procedimento para inserir empregados na tabela EMP1 create or replace PROCEDURE INSERIR_EMPREGADO ( P_MAT IN NUMBER, P_NOME IN VARCHAR2, P_SALARIO IN VARCHAR2, P_CODDEP IN VARCHAR2 ) AS BEGIN INSERT INTO EMP1 VALUES (P_MAT,P_NOME,P_SALARIO, P_CODDEP);

  • COMMIT; END INSERIR_EMPREGADO; / 4) Executar o procedimento Execute INSERIR_EMPREGADO(3000,'Maria Andrade',2500,10); 5) Confirme a insero Select * from emp1; 6) Criar o seguinte procedimento para alterar o salrio de um empreagado. create or replace PROCEDURE ALTERAR_SALARIO ( P_MAT IN NUMBER, P_PERC_AUMENTO IN NUMBER) AS BEGIN UPDATE EMP1 SET SALARIO=SALARIO*(1+P_PERC_AUMENTO/100) WHERE MAT = P_MAT; COMMIT; END ALTERAR_SALARIO; / 7) Executar o procedimento Execute ALTERAR_SALARIO (2000,10); 8) Confirmar o aumento de salario Select * from emp1; 9) Criar um procedimento para alterar o departamento de um empregado. create or replace procedure altera_departamento (p_mat in number, p_nome_dep in varchar2) as v_codigo number(5); begin select codigo into v_codigo from dep1 where nome = p_nome_dep; update emp1 set coddep=v_codigo where mat=p_mat; commit; end altera_departamento; / 10) Executar o procedimento anterior

  • execute altera_departamento (2000,TI); Outra forma de execuo, com bloco annimo: begin altera_departamento(2000,TI); end; / 11) Confirmar a execuo bem sucedida do item anterior select * from emp; 12) Criao da funo RETORNA_SALARIO que retorna o salrio do empregado cuja matricula passada por parmetro. create or replace function retorna_salario (p_mat in number) return number as v_sal number; begin select salario into v_sal from emp1 where mat=p_mat; return v_sal; end retorna_salario; / 13) Execuo da funo anterior de duas formas: i) com DBMS_OUTPUT (a janela de sada desse pacote tem que estar habilitada no SQL Developer para que as sadas possam ser visualizadas) e ii) com comandos do SQL Developer. Ambas utilizam blocos annimos. -- com o pacote ou biblioteca DBMS_OUTPUT declare v_sal number; begin v_sal := retorna_salario(9990); dbms_output.put_line('Salario '||v_sal); end; / -- com comandos variable v_sal2 number; begin :v_sal2 := retorna_salario(9990); -- v_sal2 uma varivel host (externa) por isso :

  • end; / print v_sal2 II ) EXERCCIOS a) Criar um procedimento que remova todos os empregados de um departamento e depois remova o departamento. O procedimento deve ter como parmetro o nmero do departamento. Apresente os comandos de criao e execuo do procedimento, assim como o comando select que confirma a execuo bem sucedida do mesmo. Inclua o controle de transao e o tratamento de excees. b) Crie uma funo PL/SQL que dado o nome de um departamento a funo retorne o total de salrios do departamento. Apresente os comandos de criao e execuo do procedimento, assim como o comando select que confirma a execuo bem sucedida do mesmo. Inclua o controle de transao e o tratamento de excees. OBS: Como fonte de consulta, utilize o material didtico da disciplina, disponvel no Moodle.