Skip to main content

Command Palette

Search for a command to run...

TYPES em PL/SQL: o que são, como funcionam e quando usar?

Published
3 min read
M

Desenvolvedor focado em PL/SQL, Java, Angular e qualidade de código.

Se você já se deparou com TYPE em um código PL/SQL e não entendeu muito bem pra que servia, fica tranquilo! Neste post vou te mostrar, com exemplos, como os TYPES funcionam, quando eles fazem diferença e como usar com segurança em sistemas reais.


🧠 O que são TYPES em PL/SQL?

TYPE é uma forma de definir um tipo de dado personalizado. Pode ser usado para:

  • Criar tipos escalares (como alias para tipos simples)

  • Definir registros (records) com múltiplos campos

  • Criar coleções (arrays), como tabelas ou listas

Eles ajudam a organizar dados, deixar o código mais legível e facilitar a manipulação de conjuntos de informações.


📦 Tipos mais comuns

TipoPara que serveExemplo
EscalarAlias para tipo simplesTYPE t_id IS NUMBER;
RecordConjunto de campos (como um struct)TYPE t_pessoa IS RECORD (...)
TABLE ou VARRAYLista de registros ou valoresTYPE t_lista IS TABLE OF ...

✅ Exemplo 1: TYPE escalar

DECLARE
  TYPE t_codigo IS NUMBER(5);
  v_cod t_codigo;
BEGIN
  v_cod := 101;
END;

🔹 Útil quando você quer reaproveitar um tipo com mais clareza e consistência.


✅ Exemplo 2: TYPE RECORD (tipo registro)

DECLARE
  TYPE t_usuario IS RECORD (
    id_usuario   NUMBER,
    nome         VARCHAR2(100),
    email        VARCHAR2(100)
  );

  v_user t_usuario;
BEGIN
  v_user.id_usuario := 1;
  v_user.nome := 'João';
  v_user.email := 'joao@email.com';
END;

🔹 Ótimo para representar uma linha de tabela ou dados compostos.


✅ Exemplo 3: TYPE TABLE (coleção de registros)

DECLARE
  TYPE t_lista_nomes IS TABLE OF VARCHAR2(50);
  v_nomes t_lista_nomes := t_lista_nomes('Ana', 'Bruno', 'Carlos');
BEGIN
  FOR i IN 1 .. v_nomes.COUNT LOOP
    DBMS_OUTPUT.PUT_LINE(v_nomes(i));
  END LOOP;
END;

🔹 Muito útil para passar listas como parâmetro para procedures ou para processar coleções em loops.


⚙️ Onde usar TYPES?

  • Dentro de procedures, functions ou packages

  • Para representar linhas de cursor

  • Para devolver coleções de dados

  • Para organizar parâmetros de entrada e saída


🧩 Dica real de uso

Se você tem procedures que recebem muitos parâmetros, considere usar um RECORD TYPE para agrupá-los. Fica mais limpo, legível e fácil de manter.


🚫 Cuidados ao usar TYPES

  • TYPES locais (dentro de procedures) não podem ser usados fora delas

  • Se quiser reutilização global, declare no PACKAGE SPEC

  • Evite tipos complexos desnecessários se um simples VARCHAR2 resolver


Conclusão

Usar TYPE em PL/SQL é uma forma poderosa de escrever código mais organizado, seguro e reutilizável. Eles facilitam a leitura, reduzem erros e são ideais para trabalhar com dados estruturados e coleções.


Se você curtiu esse conteúdo e quer mais dicas práticas de PL/SQL, me segue aqui ou no LinkedIn. E compartilha com aquele colega que vive fazendo SELECT * sem TYPE 😅

More from this blog

Dev Prático: Carreira e Código

15 posts

Vivências, aprendizados e perrengues da vida dev.