Oracle PLSQL:
*I. Introdução ao PL/SQL*
- Definição: PL/SQL é uma linguagem de programação procedural que é
utilizada para criar procedimentos, funções e triggers em bancos de dados
Oracle.
- Explicação: PL/SQL é uma linguagem poderosa que permite aos
desenvolvedores criar lógica de negócios complexa e realizar operações
de banco de dados de forma eficiente.
*II. Variáveis e Tipos de Dados*
- Definição: Variáveis são utilizadas para armazenar valores temporários
em um programa PL/SQL.
- Tipos de dados:
- Numéricos: NUMBER, INTEGER, etc.
- Caracteres: VARCHAR2, CHAR, etc.
- Data e hora: DATE, TIMESTAMP, etc.
- Exemplos:
- `DECLARE v_nome VARCHAR2(20);`
- `v_nome := 'João';`
*III. Estruturas de Controle*
- Definição: Estruturas de controle são utilizadas para controlar o fluxo de
execução de um programa PL/SQL.
- Tipos de estruturas de controle:
- IF-THEN-ELSE
- CASE
- LOOP
- WHILE
- Exemplos:
- `IF v_nome = 'João' THEN DBMS_OUTPUT.PUT_LINE('Olá, João!'); END IF;`
- `FOR i IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(i); END LOOP;`
*IV. Procedimentos e Funções*
- Definição: Procedimentos e funções são blocos de código PL/SQL que
podem ser chamados repetidamente.
- Procedimentos:
- Não retornam valores
- Podem ter parâmetros IN, OUT e IN OUT
- Funções:
- Retornam valores
- Podem ter parâmetros IN
- Exemplos:
- `CREATE OR REPLACE PROCEDURE sp_hello_world AS BEGIN
DBMS_OUTPUT.PUT_LINE('Olá, mundo!'); END;`
- `CREATE OR REPLACE FUNCTION fn_somar(a NUMBER, b NUMBER)
RETURN NUMBER AS BEGIN RETURN a + b; END;`
*V. Triggers*
- Definição: Triggers são blocos de código PL/SQL que são executados
automaticamente quando ocorrem eventos específicos em uma tabela.
- Tipos de triggers:
- BEFORE
- AFTER
- INSTEAD OF
- Exemplos:
- `CREATE OR REPLACE TRIGGER trg_hello_world BEFORE INSERT ON
employees FOR EACH ROW BEGIN DBMS_OUTPUT.PUT_LINE('Olá,
mundo!'); END;`
*VI. Exceções*
- Definição: Exceções são erros que ocorrem durante a execução de um
programa PL/SQL.
- Tipos de exceções:
- Pré-definidas: como NO_DATA_FOUND, TOO_MANY_ROWS, etc.
- Definidas pelo usuário: podem ser criadas utilizando a cláusula
RAISE_APPLICATION_ERROR
- Exemplos:
- `BEGIN SELECT * INTO v_employee FROM employees WHERE
employee_id = 100; EXCEPTION WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Funcionário não encontrado!'); END;`
*Exercícios*
1. Crie um procedimento que imprima o nome de todos os funcionários da
tabela employees.
2. Crie uma função que retorne o salário médio dos funcionários da tabela
employees.
3. Crie um trigger que atualize a data de modificação de um funcionário
quando seu salário for atualizado.
4. Crie um programa que utilize uma exceção para tratar o caso de um
funcionário não encontrado.
*Schema HR*
O schema HR é um exemplo de banco de dados que vem com o Oracle
SQL. Ele contém tabelas como employees, departments, locations, etc.
- employees: contém informações sobre os funcionários
- departments: contém informações sobre os departamentos
-locations: contém informações sobre as localizações