banco de dados
Matria Topicos especiais em banco de dados
-- 1. Validar a regio do vendedor que atende o pedido para a mesma regio do cliente, CREATE OR REPLACE TRIGGER ValRegVend
BEFORE INSERT OR UPDATE ON pedido
FOR EACH ROW
DECLARE
codig_regi_vended funcionario.cod_regiaoTYPE codig_regi_client cliente.codig_regiaoTYPE
BEGIN
SELECT fu.codig_regiao, cl.codig_regiao INTO codig_regi_vended, codig_regi_client FROM funcionario fu, cliente cl WHERE fu.regi_func NEW.regi_func_vendedor AND cl.codig_cli NEW.codig_cli IF codig_regi_client codig_regi_vended THEN RAISE_APPLICATION_ERROR (-20001, O VENDEDOR NO ATENDE A REGIO DO CLIENTE) END IF
END
-- 2. Validar o vendedor que atende o pedido garantindo que o cargo deste funcionrio CREATE OR REPLACE TRIGGER ValVend
BEFORE INSERT OR UPDATE ON pedido
FOR EACH ROW
DECLARE
codig_regi_func funcionario.codig_regiaoTYPE codig_regi_client cliente.codig_regiaoTYPE codig_cargo_func funcionario.codig_cargoTYPE
BEGIN
SELECT func.codig_regiao, func.codig_cargo, cl.codig_regiao INTO codig_regi_func, codig_cargo_func, codig_regi_client FROM funcionario func, cliente cl WHERE func.regi_func NEW.regi_func_vendedor AND cl.codig_client NEW.codig_client IF codig_regi_client codig_regi_func THEN RAISE_APPLICATION_ERROR (-20001, ESTE VENDEDOR NO ATENDE A REGIO DO CLIENTE) ELSIF codig_cargo_func 2 THEN RAISE_APPLICATION_ERROR (-20002, O FUNCIONRIO DESTE PEDIDO NO UM VENDEDOR) END IF
END
-- TESTANDO
INSERT INTO pedido VALUES ( pedido_cod.nextval, current_timestamp - 1, FONE , 208, 0, 5,
O MESMO, CTCRED, 210, 3,EM SEPARACAO)
-- Elabore uma funo que retorne a quantidade de pedidos feitos por um cliente passando como parmetro o nome ou parte do nome do