Banco de dados functions, procedures e dos triggers.
BRAULIO PABLO LARISSA OLIVEIRA ROBERTO JUNIOR
ATIVIDADE DE BANCO DE DADOS CCO6MA
Jaboatão dos Guararapes – PE 2013
DADOS DAS TABELAS.:
Inserção de dados necessários para a utilização das functions, procedures e dos triggers:
INSERT INTO SETOR (SALARIOBASE, CODIGO_SETOR, NOME_SETOR) VALUES ( 1500, 1, 'ENTREGAS') ; === INSERT INTO FILIAL (CNPJ, ENDERECO, GERENTE) VALUES ( 000111222333, 'RUA DA PAZ, 222', 'JOSE AUGUSTO SILVA') ; === INSERT INTO CLIENTE (CODIGO_CLIENTE, NOME, TELEFONE, ENDERECO, CODIGO_FILIAL) VALUES ( 1, 'MARIA JOSEFA', '33332222', NULL, 000111222333) ; === INSERT INTO CLIENTE (CODIGO_CLIENTE, NOME, TELEFONE, ENDERECO, CODIGO_FILIAL) VALUES ( 2, 'CARLOS ALMEIDA', '33248899', 'RUA PROFESSOR TIBUCIO', 000111222333) ; === INSERT INTO FORNECEDOR (CODIGO_FORNECEDOR,RESPONSAVEL,NOME) VALUES (1,'FERNANDO MENDES','FARMARECIFE') ; === INSERT INTO REMEDIO (CODIGO_REMEDIO, NOME, MARCA, PRECO, CATEGORIA_REMEDIO, CODIGO_FORNECEDOR) VALUES (10,'NOVALGINA', 'SANOFI', 45.50, 'DIPIRONA', 1) ; === INSERT INTO COMPRAR (DATA,CODIGO_REMEDIO,CODIGO_CLIENTE) VALUES ('30/04/2013',10,2) ;
FUNCTIONS.:
CREATE OR REPLACE FUNCTION FILIAL_EXISTE (COD IN NUMBER) RETURN BOOLEAN IS AUX NUMBER(15); BEGIN SELECT COUNT(CNPJ) INTO AUX FROM FILIAL WHERE CNPJ=COD; IF AUX > 0 THEN RETURN TRUE; ELSE RETURN FALSE; END IF; END FILIAL_EXISTE; CREATE OR REPLACE FUNCTION PRECO_REMEDIO (NOME IN VARCHAR2) RETURN FLOAT IS R_PRECO FLOAT; BEGIN SELECT PRECO INTO R_PRECO FROM REMEDIO WHERE NOME = NOME; RETURN R_PRECO; END PRECO_REMEDIO;
PROCEDURES.:
CREATE OR REPLACE PROCEDURE AUMENTAR_SALARIO (COD IN NUMBER, PORCENTAGEM IN NUMBER) IS PORCENTAGEM_TOTAL FLOAT; BEGIN PORCENTAGEM_TOTAL := PORCENTAGEM + 100; PORCENTAGEM_TOTAL := PORCENTAGEM_TOTAL / 100; UPDATE SETOR SET SALARIOBASE = SALARIOBASE * PORCENTAGEM_TOTAL WHERE CODIGO_SETOR = COD; END AUMENTAR_SALARIO;
CREATE OR REPLACE PROCEDURE NUMERO_CLIENTES