Tipos de Dados Ancorados em Oracle PL/SQL: Simplificando Declarações de Variáveis

Nesse artigo vamos explorar um recurso muito útil no mundo do PL/SQL: os Tipos de Dados Ancorados. Imaginem só poder declarar variáveis sem se preocupar com o tipo exato de dados. Legal, né? É isso que vamos aprender.

O que são Tipos de Dados Ancorados?

Pense nos Tipos de Dados Ancorados como uma cola mágica. Essa “cola” gruda o tipo de uma variável nova a algo que já existe, como uma coluna de tabela ou outra variável. É como se a nova variável dissesse: “Quero ser igualzinha àquela ali”.

A Mágica por Trás

Quando usamos tipos ancorados, estamos dizendo ao Oracle: “Ei, crie uma variável para mim, mas use o mesmo tipo de dados daquela coluna da tabela ou daquela outra variável”. Isso é ótimo porque:

  1. Economizamos tempo: Não precisamos decorar ou procurar o tipo exato.
  2. Evitamos erros: Se a tabela mudar, nossa variável se adapta automaticamente.
  3. Deixamos o código mais limpo e fácil de entender.

Como Usar Tipos de Dados Ancorados

Vamos ver como isso funciona na prática. É mais fácil do que parece.

Sintaxe Básica

Parece complicado? Calma, vamos quebrar isso em partes menores:

  • nome_da_variavel: É o nome que você escolhe para sua variável.
  • atributo_do_tipo: É a coluna da tabela ou outra variável que você quer copiar.
  • %TYPE: É a palavrinha mágica que faz tudo funcionar.

Exemplos Práticos

Vamos usar o esquema HR que vem com o Oracle. Imaginem que queremos criar variáveis baseadas nas colunas da tabela employees.

Neste exemplo, v_nome terá o mesmo tipo de dados que a coluna first_name, e v_salario será do mesmo tipo que salary. Fácil, não é?

Cuidados Especiais

Agora, prestem atenção nessa parte. É como andar de bicicleta: fácil, mas tem alguns detalhes importantes.

  1. Constraints não são copiadas de colunas de tabelas.
    • Se a coluna first_name tiver uma constraint NOT NULL, nossa variável v_nome não herda isso.
  2. Mas, se ancorarmos em outra variável, aí a história é diferente.
    • Constraints como NOT NULL são passadas adiante.

Vamos ver um exemplo que mostra essa diferença:

Se rodarmos isso, o Oracle vai reclamar dizendo que v_outro_nome precisa de um valor inicial. É como se ele dissesse: “Ei, você disse que isso não pode ser nulo, lembra?”

Você tem duas opções para corrigir esse problema:

Opção 1: Inicializar a variável v_outro_nome

Opção 2: Remover a restrição NOT NULL

Se você não precisa que a variável v_outro_nome seja NOT NULL, pode remover essa restrição do tipo base:

Explicação

  • Opção 1: Ao inicializar v_outro_nome, garantimos que ela não será nula, satisfazendo a exigência do tipo NOT NULL.
  • Opção 2: Ao remover o NOT NULL do tipo base, permitimos que a variável v_outro_nome possa ser nula.

Dica de Ouro

Sempre que possível, use tipos ancorados. Eles tornam seu código mais robusto e fácil de manter. É como construir uma casa com blocos que se ajustam automaticamente – muito mais fácil de reformar depois.

Conclusão

Os tipos de dados ancorados são como superpoderes para programadores PL/SQL. Eles nos ajudam a escrever código mais inteligente e adaptável. Da próxima vez que forem declarar variáveis, lembrem-se: com grandes poderes, vêm grandes facilidades (e menos dores de cabeça).

Agora é com você. Experimentem usar tipos ancorados nos seus códigos e vejam como fica mais fácil. Qualquer dúvida, estou aqui para ajudar. Até a próxima aula, pessoal.

Scroll to Top