Antes de tudo, tenhamos em mente o seguinte:
Identificadores: São os "nomes" ou 'apelidos' que damos aos elementos, tais como tabelas, cursores ou variáveis. Podem ter até 30 (trinta) caracteres de comprimento, devem começar com uma letra e podem ter qualquer combinação de letras, números ou caracteres especiais, tais como $, # e _.
Tipos de dados escalares
Todas as constantes e variáveis definidas em nossos programas contém um tipo de dado. É este tipo de dado que determina o formato de armazenagem, as restrições em como a variável pode ser usada e quais valores a variável pode conter. Um tipo de dado escalar é atômico, isto significa que ele não é formado por outros tipos de dados. O PL/SQL tem dois tipos de dados compostos, eles são registros e tabelas.
Tipos de Dados do PL/SQL
VARCHAR2 - Conjunto de caracter de comprimento variável
CHAR - Conjunto de caracter de comprimento fixo
NUMBER - Números fixos ou de ponto flutuante
BINARY_INTEGER - Valores de inteiros
PLS_INTEGER - Números para cálculos rápidos de inteiros
DATE – Datas
BOOLEAN - Valores True / False
NVARCHAR2 - Conjunto de caracter de comprimento variável que usam o conjunto nacional de caracteres
NCHAR - Conjunto de comprimento fixo que usam o conjunto nacional de caracter
ROWID - Usado para armazenar rowids físicos (Endereço físico do registro no Banco de Dados)
UROWID - Usado para armazenar rowids físicos e lógicos
LONG - Usado para armazenar conjuntos longos de caracter
LONG RAW - Usado para armazenar grandes quantidades de dados binários e figuras
RAW - Usado para armazenar dados binários
O que é NULL?
Esta é uma pergunta que é feita todo o tempo, mesmo assim muitas pessoas realmente não sabem qual é a resposta!
NULL é desconhecido. Tenha sempre essas duas coisas em mente:
"Um Null nunca é igual a nada."
"Um Null nunca é igual a algo."
A próxima questão deve ser, 'Como comparar coisas com valores nulos?' É onde verificamos se o valor IS NULL ou se IS NOT NULL.
Declaração de variáveis
Antes que você possa referenciar uma variável, ela deve ser definida. Quando você declara a variável, o PL/SQL aloca memória para armazenar a variável. A sintaxe para a declaração das variáveis é a seguinte:
variable_name datatype [atribuição opcional];
por exemplo:
ano_da_maioridade number = 18;
Nossas declarações podem ser limitadas ou não-limitadas. Isto significa que podemos especificar a magnetude do valor que pode ser atribuído à variável. Nossa variável Number suporta até 38 dígitos, se não limitada. O PL/SQL alocará toda a memória que é necessária para armazenar 38 dígitos. Se limitarmos a variável usando number(2), então o PL/SQL alocará apenas a memória para armazenar os dois dígitos.
Declarações Ancoradas
Variáveis ancoradas referem-se ao uso da declaração %TYPE. O que o PL/SQL está fazendo é ancorar o tipo de dado de uma variável àquele de uma outra estrutura de dados, geralmente de uma coluna de uma tabela. O benefício de tipos de dados de variáveis ancoradas em programas PL/SQL com colunas de bancos de dados é que quando as declarações base mudam, o código PL/SQL não precisa ser alterado.
Dicas sobre uso de variáveis
Sempre use nomes claros e tente estabelecer uma convenção de nomes para seus diferentes tipos de variáveis. Evite variáveis recicláveis. Leia esta instrução como NUNCA recicle variáveis. Reusar nomes de variáveis com o mesmo programa pode causar mais problemas do que você poderia imaginar. Tente depurar algum assim qualquer dia!
Use constantes nomeadas sempre que possível e evite o uso de valores numéricos.
Remova variáveis não usadas de seus programas PL/SQL. Muitos programas PL/SQL desenvolvem-se, em muitos casos, através de muitos anos e muitas versões.
Quando as variáveis não estiverem mais sendo usadas, remova-as do programa. Isto tornará o código muito mais fácil de entender.
Se a variável representa uma coluna de banco de dados, então ancore a variável à coluna do banco usando a declaração %type.
fonte: http://imasters.com.br/artigo/1466/oracle/variaveis-no-pl-sql