Introdução a PL/SQL
O que é PL/SQL
Ambiente PL/SQL
Benefícios do Código PL/SQL
Visão Geral dos Tipos de blocos PL/SQL
Criar e Executar um Bloco Anônimo Simples
Gerar Saída a Partir de um Bloco PL/SQL
iSQL*Plus como Ambiente de Programação PL/SQL
Declarando Identificadores PL/SQL
Distinguir os Diferentes Tipos de Identificadores em um subprograma PL/SQL
Usar a Seção Declarativa para Definir Identificadores
Listar os Usos de Variáveis
Armazenar Dados em Variáveis
Declarar Variáveis PL/SQL
Criando Instruções Executáveis
Descrever Instruções de Bloco Básicas
Usar Literais em Códigos PL/SQL
Personalizar Designações de Identificador com Functions SQL
Usar Blocos Aninhados como Instruções
Fazer Referência a um Valor Identificador em um Bloco Aninhado
Qualificar um Identificador com um Label
Usar Operadores em Códigos PL/SQL
Usar as Diretrizes e a Sintaxe de Bloco PL/SQL Adequadas
Interagindo com o Oracle Server
Identificar as Instruções SQL Que Você Pode Usar em Códigos PL/SQL
Incluir Instruções SELECT em Códigos PL/SQL
Recuperar Dados em Códigos PL/SQL com a Instrução SELECT
Evitar Erros Por Meio de Convenções de Nomeação ao Usar Instruções DML e Recuperação
Manipular Dados no Servidor Usando Código PL/SQL
O Conceito de Cursor SQL
Usar Atributos do Cursor SQL para Obter Feedback em Relação a Códigos DML
Salvar e Descartar Transações
Criando Estruturas de Controle
Controlar o Fluxo de Execução de Código PL/SQL
Processamento Condicional Usando Instruções IF
Processamento Condicional de Instruções CASE
Tratar Valores Nulos para Evitar Erros Comuns
Criar Condições Booleanas com Operadores Lógicos
Usar Controle Iterativo com Instruções em Loop
Trabalhando com Tipos de Dados Compostos
Aprender os Tipos de Dados Compostos de Tabelas e Registros PL/SQL
Usar Registros PL/SQL para Armazenar Diversos Valores de Diferentes Tipos
Inserindo e Atualizando com Registros PL/SQL
Usar Tabelas INDEX BY para Armazenar Diversos Valores do Mesmo Tipo de Dados
Usando Cursores Explícitos
Loops FOR de Cursor Usando Subconsultas
Aumentar a Flexibilidade de Cursores Utilizando Parâmetros
Usar a Cláusula FOR UPDATE para Bloquear Linhas
Usar a Cláusula WHERE CURRENT para Fazer Referência à Linha Atual
Usar Cursores Explícitos para Processar Linhas
Atributos de Cursos Explícitos
Cursores e Registros
Tratando Exceções
Tratando Exceções com PL/SQL
Exceções Predefinidas
Detectando Erros Não Predefinidos do Oracle Server
Functions que Retornam Informações sobre as Exceções Encontradas
Detectando Exceções Definidas pelo Usuário
Propagar Exceções
Usar o Procedure RAISE_APPLICATION_ERROR para Reportar Erros em Aplicações
Criando Stored Procedures
Descrever blocos PL/SQL e subprogramas
Descrever os usos de procedures
Criar procedures
Distinguir parâmetros formais de reais
Listar as características dos diferentes modos de parâmetro
Criar procedures com parâmetros e chamar um procedure
Tratar exceções em procedures
Verificar o código-fonte no dicionário de dados
Criando Stored Functions
Descrever stored functions
Listar a sintaxe de CREATE OR REPLACE FUNCTION
Identificar as etapas para criar uma stored function
Criar uma stored function no iSQL*Plus e executar uma stored function
Identificar as vantagens de utilizar stored functions em instruções SQL
Identificar as restrições para a chamada de functions a partir de instruções SQL
Descrever as diferenças entre procedures e functions
Criando Packages
Listar os benefícios da utilização de packages PL/SQL
Distinguir uma especificação de package de um package body
Criar packages
Incluir construtos públicos e privados em um package
Chamar construtos públicos e privados em um package
Remover packages
Usando Mais Conceitos de Package
Definições de procedures e functions sobrecarregados
Usar declarações Forward
Criar um bloco de inicialização de package que será usado uma única vez
Acompanhar o estado persistente de construtos em packages
Usar tabelas e registros PL/SQL em packages
Usar encapsulamento para ocultar o código-fonte
Utilizando os Packages Fornecidos com o Oracle no Desenvolvimento de Aplicações
Listar os diversos usos para os packages fornecidos pela Oracle
Usar o comando DESCRIBE para verificar as especificações do package e ocorrências de sobrecarga
Descrever como DBMS_OUTPUT funciona
Usar UTL_FILE para direcionar a saída para arquivos do sistema operacional
Usar o package HTP para gerar uma página Web simples
Descrever os principais recursos de UTL_MAIL
Chamar o pacote DBMS_SCHEDULER para programar a execução de código PL/SQL
Código SQL Dinâmico e Metadados
Descrever usando código SQL dinâmico nativo
Listar o fluxo de execução de instruções SQL
Criar código SQL dinâmico usando a sintaxe EXECUTE IMMEDIATE
Criar código SQL dinâmico com o package DBMS_SQL
Gerar código DDL a partir de metadados usando o package DBMS_METADATA
Considerações de Projeto para Códigos PL/SQL
Padronizar constantes com um package constante
Padronizar exceções com um package de exceções
Criar códigos PL/SQL que utilizam subprogramas locais
Usar a hint de compilador NOCOPY para especificar parâmetros por referência
Usar a hint PARALLEL ENABLE para otimização
Usar o pragma AUTONOMOUS TRANSACTION para executar transações independentes em uma única transação
Usar o pragma AUTONOMOUS TRANSACTION para executar transações independentes em uma única transação
Usar binds em alto volume para operações com várias linhas
Gerenciando Dependências
Descrever objetos dependentes e referenciados
Rastrear dependências procedurais com views de dicionário
Prever o efeito da alteração de um objeto de banco de dados em stored procedures e stored functions
Gerenciar dependências procedurais locais e remotas
Manipulando LOBs (Large Objects)
Descrever um objeto LOB
Criar e manter tipos de dados LOB
Distinguir LOBs internos de externos
Criando Triggers
Descrever os diferentes tipos de triggers
Descrever triggers de banco de dados e seu uso
Criar triggers de banco de dados
Descrever regras de acionamento de triggers de banco de dados
Remover triggers de banco de dados
Aplicações para Triggers
Criar triggers de evento de sistema e de banco de dados
Criar triggers em instruções DDL
Usar a instrução CALL em triggers para chamar procedures
Explicar as regras para ler e gravar dados em tabelas com triggers
Descrever cenários de aplicação de negócios para implementar triggers
Gerenciar o código do trigger
Compreendendo e Influenciando o Compilador PL/SQL
Descrever compilação nativa e compilação interpretada
Listar as características da compilação nativa
Alternar entre a compilação PL/SQL nativa e a compilação interpretada para código PL/SQL
Definir os parâmetros para controlar aspectos da compilação PL/SQL
Criar uma consulta para recuperar informações a partir de views de dicionário referentes a como o código PL/SQL é compilado
Explicar o mecanismo de advertência do compilador
Listar as etapas da utilização das advertências do compilador
Usar DBMS_WARNING para implementar advertências do compilador |