sábado, 7 de novembro de 2015

Tipos de Dados Oracle

                O Oracle PL/SQL possui diferentes tipos de dados (datatypes) para atender suas necessidades, que são divididos nas seguintes categorias: CHARACTER, NUMBER, DATE, LOB, BOOLEANOS, TIPOS COMPOSTOS, TIPOS DE OBJETO e TIPOS DE REFERÊNCIA.

Character Datatype

                Usados para armazenar dados alfanuméricos.
·         CHAR() armazena string de tamanho fixo. Tamanho  default 1, máximo 32.767. Subtipo: CHARACTER
·         VARCHAR2() armazena string de tamanho variável. É possível armazenar string de até 32.767 bytes. Subtipo: STRING
·         VARCHAR() sinônimo para o tipo VARCHAR2.
·         NCHAR() e NVARCHAR2() possuem as mesmas características dos tipos CHAR e VARCHAR2 e são usados para armazenar dados NLS (National Language Support). A arquitetura Oracle NLS permite armazenar, processar e recuperar informações em linguagens nativas.
·         LONG é um tipo de dados que se tornou “obsoleto” com a chegada dos tipos LOB (Large Object). O tipo LONG armazena strings de tamanho variável de no máximo 32.760 bytes.

Numeric Datatype

                Usado para armazenar dados numéricos com precisão de até 38 digitos.
·         NUMBER(, ) onde corresponde ao número de dígitos e o número de casas decimais. Valores inseridos em colunas numéricas com número de casas decimais menor que o dado inserido serão arredondados. Subtipos: DEC, DECIMAL, DOUBLE PRECISION, FLOAT, INTEGER, INT, NUMERIC, REAL, SMALLINT.
·          BINARY_INTEGER utilizado para armazenar inteiros com sinal, que variam de –2147483647 a 2147483647. Requerem menos memória que tipos NUMBER. Subtipos: NATURAL (n>=0), NATURALN (n>=0 not null), POSITIVE (n>0), POSITIVEN (n>0 not null), SIGNTYPE (-1, 0, 1).
·         PLS_INTEGER Possui as mesmas características do tipo BINARY_INTEGER, entretanto possui melhor performance para cálculos.

Date Datatype

                O tipo DATE permite valores de data e hora. O formato padrão é definido pelo parâmetro NLS_DATE_FORMAT. O Oracle armazena internamente a data em formato de número juliano com a parte fracionária usada para controlar a hora. Uma data Juliana corresponde ao número de dias desde 1 de Janeiro de 4712 A.C.
                Para operações aritméticas com datas no Oracle, basta adicionar ou subtrair números inteiros ou fracionários. Por exemplo, SYSDATE + 1 para somar uma dia, 1/24 para acrescentar uma hora, 1/(24x60) ou 1/1440 para acrescentar 1 minuto e 1/(24x60x60) ou 1/86400 para um segundo.
                No Oracle 9i há também 5 novos tipos de dados para armazenar tipos de data:
·         TIMESTAMP semelhante ao tipo DATE, com a diferença de armazenar fração de segundos com precisão de até 9 digitos.
·         TIMESTAMP WITH TIME ZONE armazena data/hora com informações de fuso horário.
·         TIMESTAMP WITH LOCAL TIME ZONE armazena data/hora no fuso horário do servidor. Quando o usuário seleciona os dados, o valor é ajustado para as configurações da  sua sessão.
·         INTERVAL YEAR TO MONTH usado para armazenar espaço de tempo em anos e meses.
·         INTERVAL DAY TO SECOND permite especificar intervalos em dias, horas, minutos e segundos.

LOB Datatypes

                Large Object (LOB) datatypes são usado para armazenar dados não estruturados como imagens, arquivos binários. Os tipos LOBs podem armazenar até 4GB de informação. A manipulação dos tipos LOB é feita através da package DBMS_LOB.

 

BLOB
Binary Large Object
Armazena até 4GB de dados binários no banco
CLOB
Character Large Object
Armazena até 4GB de dados caráter
BFILE
Binary File
Armazena até 4GB de dados em arquivos binários externos. Uma coluna BFILE armazena um ponteiro para o arquivo armazenado no sistema operacional.

Outros Datatypes

·         RAW é um tipo para dados binários, não interpretados pelo banco. Podem armazenar até 32.767 bytes de informação e seus dados não passam por conversão de conjunto de caracteres entre cliente e servidor.
·         LONGRAW semelhante ao tipo LONG, é um tipo de dados “obsoleto” que pode armazenar até 32.760 bytes de dados. Seu uso foi depreciado pelos tipos BLOB e BFILE.
·         ROWID Oracle utiliza o datatype ROWID para armazenar o endereço de cada linha no banco de dados. Toda tabela contém uma coluna oculta chamada ROWID que retorna um identificador único do endereço da linha no banco de dados no formato OOOOOOFFFBBBBBBRRR onde “O” representa o número do objeto, “F” o número do datafile, “B” a identificação do bloco Oracle e “R” a identificação da linha no bloco.
·         UROWID Universal ROWID, suporta todos os tipos de ROWID (físicas ou lógicas) bem como de tabelas não Oracle acessadas através de gateway.

Tipo booleano

                O único tipo de dados na família booleana é o BOOLEAN. Variáveis booleanas são utilizadas em estruturas de controle da PL/SQL como as instruções IF-THEN-ELSE e de LOOP. Podem conter apenas os valores TRUE, FALSE ou NULL.

Tipos compostos

            Os tipos compostos disponíveis em PL/SQL são registros, tabelas e varrays. Um tipo composto é um que tem componentes dentro dele. Uma variável do tipo composta contém uma ou mais variáveis.

Tipos de referencia

            Um tipo de referência na PL/SQL é semelhante a um ponteiro em C. Uma variável que seja declarada  como um tipo de referência pode apontar para posições de memória diferentes na vida do programa. Em PL/SQL usamos os tipos REF e REF CURSOR.

Tipos de objeto


            Consiste em um tipo composto que possui atributos (variáveis de outros tipos) e métodos (subprogramas) dentro dele.

Nenhum comentário:

Postar um comentário