Sei sulla pagina 1di 4

banco dados: in/out/in out 1- desenvolver uma procedure para validar parmetros: in/out/in out, com inserso de valores

(tabela) create table resultado_executa (cod_resu_exec int primary key, dt_resu_exec ate not null, txt_resu_exec vachaar(100), vl_resu_exec number); create sequence seq_resultado_executa; create or replce sp_teste_in_out_inout( p_valor_entrada IN number, p_valor_saida OUT number, p_valor_ent_sai IN OUT number) IS v_valor_local number := 0; BEGIN ''''''''''''''''''''teste parametros entrada'''''''''''''''''''''' IF p_valor_entrada IS NULL then INSERT INTO RESULTADO_EXECUTA VALUES (seq_resultao_executa.nextval, sysdate, 'p_valor_entrada = NULO', NULL) ELSE v_valor_locl := p_valor_entrada; INSERT INTO RESULTADO_EXECUTA VALUES (seq_resultado_executa.nextval, sysdate, NULL, v_valor_local); END IF; ''''''''''''''''''''''TESTE parametros saida''''''''''''''''''''''''''''''' IF p_valor_saida IS NULL THEN p_valor_saida := 100; INSERT INTO RESULTADO_EXECUTA VALUES (seq_resultado_executa.nextval, sysdate, 'p_valor_saida', p_valor_saida); END IF; '''''''''''''''''''''teste do parametro de entrada e saida'''''''''''''''' if p_valor_ent_saida IS NULL THEN INSERT INTO RESULTADO_EXECUTA VALUES (seq_resultado_executa.nextval, sysdate, 'p_valor_ent_saida = NULL', NULL); else v_valor_local := P_valor_ent_sai; INSERT INTO RESULTADO_EXECUTA VALUES (seq_resultado_executa.nextval, sysdate, 'p_valor_ent_sai', v_valor_LOCAL);

END IF;

'''''''''''''''''''''''''confirmar transao''''''''''''''''''''''''''''''''' COMMIT; END; ================================================================================ ========================================= resumo ultima aula: 1) Criar tabelas e relacionamentos; CREATE TABLE CLIENTE_OFICINA (COD_CLI INT PRIMARY KEY, NOME_CLI VARCHAR(40) NOT NULL, FONE_CLI VARCHAR(20) NOT NULL); CREATE TABLE VEICULO_OFICINA (COD_VEIC INT PRIMARY KEY, PLACA_VEIC VARCHAR(8) NOT NULL, MODEL_VEIC VARCHAR(20) NOT NULL, COR_VEIC VARCHAR(20) NOT NULL); CREATE TABLE ORDEM_SERVICO (COD_OS INT PRIMARY KEY, DESC_OS VARCHAR(100) NOT NULL, VL_OS DECIMAL(10,2) NOT NULL, COD_CLI INT NOT NULL REFERENCES CLIENTE_OFICINA(COD_CLI), COD_VEIC INT NOT NULL REFERENCES VEICULO_OFICINA(COD_VEIC)); 2) Criar sequncias para as respectivas tabelas; CREATE SEQUENCE SEQ_CLIENTE_OFICINA; CREATE SEQUENCE SEQ_VEICULO_OFICINA; CREATE SEQUENCE SEQ_ORDEM_SERVICO; 3) Criar procedures; A)para inserir dados CREATE OR REPLACE PROCEDURE INSERI_CLIENTE_OFICINA (p_Nome_Cli Cliente_Oficina.Nome_Cli%type, p_Fone_Cli Cliente_Oficina.Fone_Cli%type) AS BEGIN INSERT INTO CLIENTE_OFICINA VALUES (seq_cliente_oficina.nextval, p_Nome_Cli, p_Fone_Cli); END; CREATE OR REPLACE PROCEDURE INSERI_VEICULO_OFICINA (p_Placa_Veic Veiculo_Oficina.Placa_Veic%type, p_Model_Veic Veiculo_Oficina.Model_Veic%type, p_Cor_Veic Veiculo_Oficina.Cor_Veic%type) AS BEGIN INSERT INTO VEICULO_OFICINA VALUES (seq_veiculo_oficina.nextval, p_Placa_Veic, p_Model_Veic, p_Cor_Veic); END;

CREATE OR REPLACE PROCEDURE INSERI_ORDEM_SERVICO (p_Desc_Os Ordem_Servico.Desc_Os%type, p_Vl_Os Ordem_Servico.Vl_Os%type, p_Cod_Cli Ordem_Servico.Cod_Cli%type, p_Cod_Veic Ordem_Servico.Cod_Veic%type) AS BEGIN INSERT INTO ORDEM_SERVICO VALUES (seq_ordem_servico.nextval, p_Desc_Os, p_Vl_Os, p_Cod_Cli, p_Cod_Veic); END; B)para alterar dados CREATE OR REPLACE PROCEDURE ALTERAR_CLIENTE_OFICINA (p_Nome_Cli Cliente_Oficina.Nome_Cli%type, p_Fone_Cli Cliente_Oficina.Fone_Cli%type) AS BEGIN UPDATE CLIENTE_OFICINA SET NOME_CLI = P_NOME_CLI, FONE_CLI = P_FONE_CLI; END; CREATE OR REPLACE PROCEDURE ALTERAR_VEICULO_OFICINA (p_Placa_Veic Veiculo_Oficina.Placa_Veic%type, p_Model_Veic Veiculo_Oficina.Model_Veic%type, p_Cor_Veic Veiculo_Oficina.Cor_Veic%type) AS BEGIN UPDATE VEICULO_OFICINA SET PLACA_VEIC = P_PLACA_VEIC, MODEL_VEIC = P_MODEL_VEIC, COR_VEIC = P_COR_VEIC; END; CREATE OR REPLACE PROCEDURE ALTERAR_ORDEM_SERVICO (p_Desc_Os Ordem_Servico.Desc_Os%type, p_Vl_Os Ordem_Servico.Vl_Os%type, p_Cod_Cli Ordem_Servico.Cod_Cli%type, p_Cod_Veic Ordem_Servico.Cod_Veic%type) AS BEGIN UPDATE ORDEM_SERVICO SET DESC_OS = P_DESC_OS, VL_OS = P_VL_OS, COD_CLI = P_COD_CLI, COD_VEIC = P_COD_VEIC; END; C)para apagar dados CREATE OR REPLACE PROCEDURE APAGA_CLIENTE_OFICINA (p_Cod_Cli Cliente_Oficina.Cod_Cli%type) AS BEGIN DELETE FROM CLIENTE_OFICINA WHERE COD_CLI = P_COD_CLI; END; CREATE OR REPLACE PROCEDURE APAGA_VEICULO_OFICINA (p_Cod_Veic Veiculo_Oficina.Cod_Veic%type) AS

BEGIN DELETE FROM VEICULO_OFICINA WHERE COD_VEIC = P_COD_VEIC; END; CREATE OR REPLACE PROCEDURE APAGA_ORDEM_SERVICO (p_Cod_Os Ordem_Servico.Cod_Os%type) AS BEGIN DELETE FROM ORDEM_SERVICO WHERE COD_OS = P_COD_OS; END;

Potrebbero piacerti anche