Oracle 10g: Fundamentals II - Linguagem PL/SQL
Duração:
24hs
Oracle 10g Fundamentals II - Linguagem PL/SQL, Procedures, Funções, Packages e Database Triggers
Objetivos
- Descrever as características e a sintaxe da linguagem PL/SQL
- Controlar o fluxo de código condicionalmente (loops, estruturas de controle e cursores explícitos)
- Administrar erros de momento de execução
- Criar, executar, e manter procedures, funções, packages e triggers
- Este treinamento é aplicável a usuários Oracle 8i, Oracle 9i e Oracle 10g
Pré-requisitos
- Conhecimentos de Lógica de Programação
- Noções de Sistemas Operacionais
Público alvo
- Administradores de Banco de Dados
- Administradores de Dados
- Administradores de Sistema Operacional e Redes
- Analistas de Sistemas
- Arquitetos de Sistemas e Projetistas
- Desenvolvedores de Aplicações
- Diretores de Informática
- Gerentes de Informática
- Gerentes de Suporte
- Profissionais do Suporte Técnico
- Programadores
- Web Designers
- Web Developers
- Web Managers
Conteúdo
1. Introdução ao PL/SQL
- Linguagem PL/SQL
- Ambiente PL/SQL
- Benefícios do PL/SQL
- Estrutura dos Blocos PL/SQL
- Desenvolvendo Programas PL/SQL
- Blocos PL/SQL Anônimos
- Blocos PL/SQL Nomeados: Subprogramas
- Vantagens do Uso de Procedimentos e Funções
- Diferenças entre Subprogramas de Banco de Dados e Subprogramas de Aplicação
- Criando Procedimentos e Funções de Banco de Dados
- Executando Subprogramas
2. Escrevendo Comandos Executávies
- Estrutura de um Bloco PL/SQL
- Tipos de Blocos
- Construções de Programas
- Utilização de Variáveis
- Tratando Variáveis em PL/SQL
- Tipos de Variáveis
- Declarando Variáveis PL/SQL
- Regras de Nomenclatura
- Atribuindo Valores para Variáveis
- Utilizando Variáveis e Palavras Chaves
- Tipos de Dados Escalares
- Atributo %TYPE
- Declarando Variáveis com o Atributo %TYPE
- Declarando Variáveis BOOLEAN
- Tipos de Dados Compostos
- Variáveis com Tipos de Dados LOB
- Variáveis Tipo BIND
- Referenciando Variáveis Não PL/SQL
- Comentando o Código
- Funções SQL em PL/SQL
- Conversão de Tipos de Dados
- Blocos Aninhados e Escopo de Variáveis
- Operadores em PL/SQL
- Diretrizes de Programação
- Convenções de Nomenclatura
- Indentando o Código
- Package DBMS_OUTPUT
- Determine o Escopo das Variáveis
3. Interagindo com o Servidor Oracle
- Comandos SQL em PL/SQL
- Comandos SELECT em PL/SQL
- Recuperando Dados em PL/SQL
- Manipulando Dados Utilizando PL/SQL
- Inserindo Dados
- Atualizando Dados
- Removendo Dados
- Convenções de Nomenclatura - Cuidados
- Comandos COMMIT e ROLLBACK
- Cursor SQL
- Atributos do Cursor SQL
4. Escrevendo Estruturas de Controle
- Controlando o Fluxo de Execução PL/SQL
- Comando IF
- Comandos IF Simples
- Fluxo de Execução do Comando IF-THEN-ELSE
- Comandos IF-THEN-ELSE
- Fluxo de Execução do Comando IF-THEN-ELSIF
- Comandos IF-THEN-ELSIF
- Construindo Condições Lógicas
- Tabelas de Lógica
- Condições Boleanas
- Comando CASE
- Controle de Repetições: Comandos de LOOP
- LOOP Básico
- FOR LOOP
- WHILE LOOP
- LOOPs Aninhados e Labels
5. Tipo de Dado Record e Collections
- PL/SQL Records
- Criando um PL/SQL Record
- Referenciando e Inicializando Registros
- Atributo %ROWTYPE
- Vantagens da Utilização de %ROWTYPE
- O que é uma Collection?
- Associative Arrays
- Criando um Associative Array
- Estrutura de um Associative Array
- Utilizando um Associative Array
- Associative Array com Registros
- Nested Tables
- Criando uma Nested Table
- Utilizando Nested Tables
- Varrays
- Criando um Varray
- Utilizando Varrays
- Utilizando Métodos de Collections
- Exemplo de utilização dos métodos de Collections
6. Escrevendo Cursores Explícitos
- Cursores
- Cursores Explícitos
- Controlando Cursores Explícitos
- Declarando o Cursor
- Abrindo um Cursor
- Recuperando Dados do Cursor
- Fechando um Cursor
- Atributos de Cursores Explícitos
- Controlando Múltiplos FETCHs
- Atributo %ISOPEN
- Atributos %NOTFOUND e %ROWCOUNT
- Cursores e Registros
- Cursor FOR LOOP
- Cursor FOR LOOP Utilizando Subconsultas
- Cursores com Parâmetros
- Cláusula FOR UPDATE
- Cláusula WHERE CURRENT OF
7. Tratamento de Exceções
- Tratando Exceções
- Diretrizes para o Tratamento de Exceções
- Tratando Erros Pré-Definidos do Servidor Oracle
- Interrupções de Programa
- Exceções Pré-definidas Oracle
- SQLCODE e SQLERRM
- Exceções Definidas pelo Desenvolvedor
8. Procedimentos de Banco de Dados
- Criando Procedimentos de Banco de Dados
- Parâmetros
- Parâmetros IN
- Parâmetros OUT
- Parâmetros IN OUT
- Parâmetros OUT e IN OUT por referência
- Utilizando Múltiplos Parâmetros
- Executando Procedimentos
- Removendo Procedimentos de Banco de Dados
9. Funções de Banco de Dados
- Criando Funções de Banco de Dados Através do SQL*Plus
- Considerações sobre Funções de Banco de Dados
- Parâmetros em Funções
- Executando Funções
- Removendo Funções de Banco de Dados
- Procedimentos X Funções
10. Gerenciando Subprogramas
- Gerenciando Procedimentos e Funções - Visão Geral
- Consultando o Código Fonte
- Consultando o Nome e a Lista de Parâmetros
- Consultando Erros
- Gerenciando Dependências
- Tipos de Dependências
- Tratamento de Dependências Locais Diretas
- Tratamento de Dependências Locais Indiretas
- Re-compilando Procedimentos e Funções
- Exemplos de Compilações de Procedimentos e Funções
- Verificando o Status de Procedimentos e Funções
- Re-compilando Procedures e Funções Implicitamente
- Tratamento Explícito de Dependências Remotas
11. Desenvolvendo e Utilizando Packages
- O Que são Packages
- Desenvolvendo Packages - Visão Geral
- Criando Packages de Banco de Dados
- Criando o Package Body
- Definindo um Procedimento de Única Execução
- Removendo a Package
- Removendo o Package Body
- Invocando Construções de Packages
- Benefícios do Uso de Packages
- Gerenciando Dependências em Packages
12. Desenvolvendo e Utilizando Database Triggers
- Database Triggers - Visão Geral
- Criando DML Triggers
- Triggers em Nível de Linha e em Nível de Comando
- Ordem de disparo das Triggers
- Criando uma Trigger em Nível de Comando
- Criando uma Trigger Combinando Vários Eventos
- Triggers em Nível de Linha
- Criando Triggers em Nível de Linha
- Triggers INSTEAD OF
- Criando Triggers INSTEAD OF
- Mutating Tables
- Resolvendo o erro de Mutating Tables
- Habilitando e Desabilitando Database Triggers
- Removendo uma Database Trigger
- Gerenciando Database Triggers
- Consultando o Código Fonte de Database Triggers
13. Package UTL_FILE
- Package UTL_FILE
- Procedimentos e Funções da Package UTL_FILE
- Utilizando a Package UTL_FILE
14. Flashback de Objetos
- DBMS_FLASHBACK
- Posicionando-se em um Horário Passado
- Posicionando a Sessão em um SCN Anterior
- Flashback Drop
- Lixeira
- Dropando um objeto
- Restaurando um objeto
- Removendo um objeto definitivamente
- Eliminando os dados da lixeira
- Flashback Table
15. Package DBMS_SCHEDULER
- Componentes
- Criando, Habilitando, Desabilitando e Removendo um Programa
- Criando e Removendo um Schedule
- Criando, Iniciando, Terminando, Copiando e Removendo um Job
- Visões do Dicionário de Dados