PLPGSQL
A PLPGSQL ou PL/pgSQL é uma linguagem estrutural estendida da SQL que tem por objetivo auxiliar as tarefas de programação no PostgreSQL. Ela incorpora à SQL características procedurais, como os benefícios e facilidades de controle de fluxo de programas que as melhores linguagens possuem. Por exemplo loops estruturados (for, while) e controle de decisão (if then else).
PLPGSQL é uma PL/SQL significa "Procedural Language extensions to SQL", que pode ser usado em bancos de dados. O PL/SQL é a linguagem SQL com construções de programação similares a outras liguagens.
Vantagens
Geralmente o uso de SQL Procedural traz as seguintes vantagens[1]:
- Suporte a módulos de linguagem;
- Cursores;
- Estrutura de Seleção;
- Estrutura de Loop;
- Combinação com SQL declarativo;
- Combinação com transações;
- Tratamento de exceções;
- Suporte a escopo de variáveis;
- Suporte aos tipos primitivos, complexos e domínios ( definidos pelo usuário).
Estruturas
Plpgsql: estruturas de seleção
IF ... THEN IF ... THEN ... ELSE IF ... THEN ... ELSE IF IF ... THEN ... ELSIF ... THEN ... ELSE IF ... THEN ... ELSEIF ... THEN ... ELSE O bloco sempre deve fechar com END IF ;
IF condição THEN
comandos;
ELSE
comandos;
END IF;
Plpgsql: estruturas de repetição
FOR..LOOP LOOP WHILE ... LOOP
BEGIN
FOR reg IN consulta LOOP
comandos
END LOOP;
FOR i IN REVERSE 10..1 LOOP
-- comandos
END LOOP;
FOR..LOOP e RECORD
create or replace function exibeLinhaAluno () returns boolean as $$
declare
linha record ;
WHILE LOOP
WHILE (condicao_v) LOOP
declarações
END LOOP;
EXIT;
EXIT WHEN condição ;