Modelo de Estudo
Ferramenta SQL *PLUSDigitar, editar, armazenar e executar comandos SQL e blocos PL/SQL; Formatar, executar cálculos, armazenar e imprimir resultados de Querys.
Interação Banco de Dados
Conectando ao Banco de Dados
Primeira Consulta
A Linguagem SQL
Linguagem SQL é dividida em...
PL/SQL Oracle
O que é PL/SQL?
Estrutura dos blocos...
Como fica?DECLARE...BEGIN...EXCEPTION...END;
Tipos de blocos...Blocos Nomeados
Usando variáveis...
Comandos SQL no PL/SQL...
Cursor SQL (implícitos)...É uma área privada para o SQL
Estrutura de Controle...
Controle de repetição...
Cursores explícitos...Cursores devem ser declarados explicitamente sempre que uma query retornar mais de uma linha, para que elas possam ser  tratadas individualmente.
Passos para utilizar cursores...
Exemplo...
Atributos desses cursores...
Usando o FOR no cursor...
Cursores com parâmetros...
Blocos PL/SQL DeclaradosAs procedures, funções e triggers são exemplos de Blocos PL/SQL que são declarados e ficam armazenados dentro do banco de dados Oracle.Esses objetos de banco de dados podem ser executados diretamente pela aplicação (Forms, Reports) ou então no banco de dados mesmo.
Sintaxe da Procedure...create [orreplace] procedurenome_procedure [(parâmetros, ...)] is	...Begin	...End;
Procedure...createorreplaceprocedureprc_novo_periodo(  p_cod_periodo in number,p_dat_inicial in date,p_dat_final in date) isBegininsertintoperiodo_letivo( cod_periodo, dat_inicial, dat_final ) values( p_cod_periodo, p_dat_inicial,p_dat_final);commit ;End;
Sintaxe Functions...create [orreplace] functionnome_função [(parametros, ...)] returntipo_retorno { is | as }	...Begin	...End ;
Functions...createorreplacefunctionfun_media_aluno(p_cod_alunonumber)returnnumber isv_medianumber := 0 ;Beginselectavg(val_nota_final)intov_mediafrom matriculawherecod_aluno = p_cod_aluno ;return( v_media ) ;End ;
Trigger...As triggers podem ser utilizadas para:Prevenir transações inválidas;Forçar regras de negócios complexas;Derivar valores de colunas específicas.
Antes de codificá-la...
OLD e NEW...
Sintaxe da trigger...create [orreplace] triggernome_trigger[before | after][delete | insert | update [of coluna] ]onnome_tabela[for eachrow] [when condição]bloco PL/SQL;
Trigger...createorreplacetriggertrg_seguranca_alunoBeforeinserton alunoBeginif (to_cha( sysdate, ‘DY’ ) in (‘SAT’, ‘SUN’) ) or     ( to_number( to_char( sysdate, ‘HH24’ ) ) notbetween 8 and 18) thenraise_application_error( -20001, ‘Você só pode inserir um aluno no horário comercial’ ) ;endif ;End;
Trigger...createorreplacetriggertrg_curso_chkBeforeupdateofcarga_horariaOn curso for eachrowBeginifnvl( :new.carga_horaria,0) < nvl( :old.carga_horaria, 0 ) thenraise_application_error( -20003, ‘A carga horaria não pode ser diminuida’ );endif ;	:new.carga_horaria_ant := :old.carga_horaria ;End;
Forms Oracle
O que tem?
Hierarquia visual...
O Forms Oracle...
O que mais importa...
Triggers (gatilhos)...Nível?}Quando?PL/SQL
Eventos de Trigger mais utilizados...WHEN-VALIDATE-ITEMExecuta o script definido ao sair do campoKEY-NEXT-ITEMComando executado ao efetuar os comandos de TAB ou ENTERWHEN-BUTTON-PRESSEDComando executado ao clicar no botão
Eventos de Trigger mais utilizados...PRE-INSERT e POST-INSERTExecutados antes e depois de inserir, respectivamentePOST-QUERYExecutado após buscar um registro da tabela (Funciona apenas para blocos base-table)WHEN-NEW-BLOCK-INSTANCEQuando um novo bloco é acessado
Eventos de Trigger mais utilizados...WHEN-NEW-FORM-INSTANCEAo carregar o novo programaON-ERRORQuando ocorre algum erroON-MESSAGEQuando o Oracle dispara alguma mensagem
Oracle FormsFelipe Goulartflpgoulart@gmail.com | http://br.linkedin.com/in/goularttwitter.com/flpgoulartflpgoulart@gmail.comflpgoulart@gmail.com

Treinamento Oracle Forms