Você está na página 1de 3

Tipos PL/SQL

Tipos PL/SQL

Como o Oracle7, a PL/SQL tinha três categorias de tipos: referência,


composta e escalar. 0 Oracle8 definiu duas categorias adicionais de tipos:
LOB e tipos de objeto.

Tipos de dados escalares não têm quaisquer componentes dentro do tipo,


enquanto tipos compostos tem Um tipo de referência e um ponteiro para
um outro tipo. A imagem abaixo lista todos os tipos da PL/SQL os quais
são descritos a seguir.

Os tipos pré-definidos da PL/SQL são definidos em um pacote chamado de


STANDARD. O conteúdo desse pacote esta disponível para qualquer bloco
PL/SQL. Além dos tipos, o pacote STANDARD define as funções pré-
definidas de conversão e SQL disponíveis na PL/SQL.

Tipos escalares
Os tipos escalares válidos consistem dos mesmos tipos válidos para uma
coluna do banco de dados com um número de adições. Tipos escalares
podem ser divididos em sete famílias-numérica, raw ("bruta"),
data/intervalo, rowid, booleana e confiável - cada uma delas e descrita nas
seções a seguir.

Família numérica

Os tipos na família numérica armazenam inteiros ou valores reais. Ha três


tipos básicos - NUMBER, PLS INTEGER e BINARY-INTEGER.

Variáveis do tipo NUMBER podem conter tanto um inteiro como uma


quantidade real e, as variáveis do tipo BINARY INTEGER ou PLS
INTEGER podem conter apenas inteiros.

Number

Esse tipo pode conter um valor numérico, tanto um inteiro como um ponto
flutuante. E o mesmo que o tipo do banco de dados NUMBER. A sintaxe
para declarar um número é:

               NUMBER (P,S), onde P e a precisão e S e a escala. A precisão é o


número de dígitos no valor e a escala é o número de dígitos a direita do
ponto decimal. A escala pode ser negativa, o que indica que o valor e
arredondado para o número especificado de casas decimal a esquerda do
ponto decimal.

Tanto precisão como escala são opcionais, mas se a escala estiver presente,
a precisão também deve estar presente.

A precisão máxima e 38 e a escala varia de -84 a 127.

Um subtipo e um nome alternativo para um tipo que opcionalmente pode


restringir os valores válidos de uma variável do subtipo.

Ha um número de subtipos que são equivalentes ao NUMBER, o qual


essencialmente renomeia o tipo de dados NUMBER porque nenhum deles
e restrito. Você talvez queira utilizar um nome alternativo para a
legibilidade on compatibilidade com os tipos de dados de outros bancos de
dados. Os tipos equivalentes são:

. DEC
. DECIMAL
. DOUBLE PRECISION
. FLOAT
. NUMERIC
. REAL

Valores da precisão e de escala

Valor
Declaração Valor armazenado
atribuído
NUMBER 1234.5678 234.5678
NUMBER(3) 123 123
Erro - excede a
NUMBER(3) 1234
precisao
Erro - excede a
NUMBER(4,3) 123.4567
precisao
NUMBER(4,3) 1.234567 1.235
NUMBER(7,2) 12345.67 12345.67
NUMBER(3,-3) 1234 10002
NUMBER (3,
1234 12302
-1)

VARCHAR2

Esse tipo comporta-se de maneira semelhante ao tipo do banco de dados


VARCHAR2. As variáveis do tipo VARCHAR2 podem conter strings de
caracteres de variáveis de comprimento, com um comprimento máximo. A
sintaxe para declarar uima variável VARCHAR2 é VARCHAR2 (L), onde
L e o comprimento máximo da variável. 0 comprimento é requerido - não
há nenhum padrão. 0 comprimento máximo para uma variável
VARCHAR2 na PL/SQL e 32.767 bytes.

Você também pode gostar