PL/SQL – Introdução
Bom dia meus amigos,
Como andam os estudos em oracle? Estão achando a tecnologia muito complexa? Acham que não vai dar conta de aprender? Calma… é normal esse tipo de “pensamento” no início. Essa área como qualquer outra exige muita dedicação e persistência. Com o tempo, tudo será claro e de fácil entendimento pra você…basta estudar e práticar bastante!!! Seguindo a ordem, no post anterior, comentei um pouco a respeito de SQL, que é o ponta pé inicial para começar os estudos e entender a Oracle, e também serve de pré-requisito para adentrar em PL/SQL. Vamos lá?
PL/SQL
Sobre PL/SQL
A linguagem PL/SQL (Procedural Language/SQL) é uma extensão de linguagem procedural do SQL, a linguagem de acesso a dados padrão para bancos de dados relacionais. O PL/SQL é uma linguagem proprietária da Oracle Corporation.
*Benefícios da Linguagem PL/SQL
Integração
- A linguagem PL/SQL desempenha um papel central tanto para o Oracle Server através de procedimentos armazenados, funções armazenadas, gatilhos de banco de dados e pacotes.
- Além de os tipos de dados SQL também serem usados no código PL/SQL.
-Combinados com o acesso direto que a linguagem SQL fornece, esses tipos de dados compartilhados integram a linguagem PL/SQL com o dicionário de dados do Oracle Server.
Melhora o Desempenho
- Reduz o Tráfego da Rede, visto que ele agrupa as instruções SQL em um único bloco e envia esse bloco inteiro para o servidor em uma única chamada.
- A linguagem PL/SQL também pode cooperar com as ferramentas de desenvolvimento de aplicação do Oracle Server como, por exemplo, Oracle Developer Forms e Reports. Ao adicionar recursos de processamento procedural a essas ferramentas, a linguagem PL/SQL aumenta o desempenho.
*Estrutura de Bloco PL/SQL
DECLARE – Opcional
Variáveis, cursores, exceções definidas pelo usuário
BEGIN – Obrigatório
– Instruções SQL
– Instruções PL/SQL
EXCEPTION – Opcional
Ações a serem desempenhadas quando ocorrem erros
• END;
– Obrigatório
- A linguagem PL/SQL é uma linguagem estruturada em blocos, o que significa que os programas podem ser divididos em blocos lógicos. Um bloco PL/SQL consiste em até três seções: declarativa (opcional), executável (necessária) e tratamento de exceção (opcional).
Seção Declarativa/Declare: Contém todas as variáveis, constantes, cursores e exceções definidas pelo usuário que são referenciadas nas seções executável e declarativa (Opcional)
Seção Executável/Begin: Contém instruções SQL para manipular dados no banco de dados e instruções PL/SQL para manipular dados no bloco (Obrigatória)
Seção Tratamento de exceção/ Exception: Especifica as ações a desempenhar quando erros e condições anormais surgem na seção executável (Opcional).
Observações:
- Em PL/SQL, um erro é chamado de exceção.
- As unidades básicas procedimentos e funções, também são conhecidas como subprogramas.
- Uma função é similar a um procedimento, exceto que uma função deve retornar um valor.
- Subprogramas são blocos PL/SQL nomeados que podem assumir parâmetros e podem ser chamados. Você pode declará-los como procedimentos ou como funções.
*Tipos de Blocos
Toda unidade PL/SQL compreende um ou mais blocos. Onde esses blocos podem ser inteiramente separados ou aninhados um dentro do outro. Existem 3 tipos de blocos:
Anônimo
BEGIN
–statements
[EXCEPTION]
END;
Procedimento
PROCEDURE name
IS
BEGIN
–statements
[EXCEPTION]
END;
Função
FUNCTION name
RETURN datatype
IS
BEGIN
–statements
RETURN value;
[EXCEPTION]
END;
- Blocos anônimos: são blocos sem nome. Eles são declarados em um ponto do aplicativo onde eles devem ser executados e são passados para o mecanismo PL/SQL para serem executados em tempo de execução.
- Bloco de Procedimento/Procedural: nada mais é do um bloco PL/SQL nomeado. A grande vantagem sobre um bloco PL/SQL anônimo é que pode ser compilado e armazenado no banco de dados como um objeto de schema. Graças a essa característica as procedures são de fácil manutenção, o código é reutilizável e permitem que trabalhemos com módulos de programa.
- Bloco Função: É um bloco PL/SQL nomeado, semelhante ao Procedural, porém retorna valor.
No próximo post, darei continuidade ao PL/SQL.
Abraços,