Tipos de dados Oracle PL / SQL: booleano, número, data (exemplo)

Índice:

Anonim

O que são tipos de dados PL / SQL?

Um tipo de dados está associado ao formato de armazenamento específico e às restrições de intervalo. No Oracle, cada valor ou constante é atribuído a um tipo de dados.

Basicamente, define como os dados são armazenados, manuseados e tratados pela Oracle durante o armazenamento e processamento dos dados.

A principal diferença entre os tipos de dados PL / SQL e SQL é que os tipos de dados SQL são limitados à coluna da tabela, enquanto os tipos de dados PL / SQL são usados ​​nos blocos PL / SQL. Mais sobre isso posteriormente no tutorial.

A seguir está o diagrama de diferentes tipos de dados em PL / SQL

Neste tutorial, você aprenderá-

  • Tipo de dados CHARACTER
  • NUMBER tipo de dados
  • Tipo de dados BOOLEAN
  • Tipo de dados DATE
  • Tipo de dados LOB

Tipo de dados CHARACTER:

Este tipo de dados basicamente armazena caracteres alfanuméricos em formato de string.

Os valores literais sempre devem ser colocados entre aspas simples ao atribuí-los ao tipo de dados CHARACTER.

Este tipo de dados de caractere é ainda classificado da seguinte forma:

  • Tipo de dados CHAR (tamanho de string fixo)
  • Tipo de dados VARCHAR2 (tamanho variável da string)
  • Tipo de dados VARCHAR
  • NCHAR (tamanho de string fixo nativo)
  • NVARCHAR2 (tamanho de string variável nativa)
  • LONG e LONG RAW
Tipo de dados Descrição Sintaxe
CARACTERES Este tipo de dados armazena o valor da string e o tamanho da string é fixo no momento da declaração da variável.
  • O Oracle teria a variável preenchida em branco se a variável não ocupasse todo o tamanho que foi declarado para ela. Portanto, o Oracle alocará a memória para o tamanho declarado mesmo se a variável não o ocupar totalmente.
  • A restrição de tamanho para este tipo de dados é de 1 a 2.000 bytes.
  • O tipo de dados CHAR é mais apropriado para usar sempre que fixo o tamanho dos dados será tratado.
grade CHAR;manager CHAR (10):= 'guru99';
Explicação da sintaxe:
  • A primeira declaração de declaração declarou a variável 'grau' do tipo de dados CHAR com o tamanho máximo de 1 byte (valor padrão).
  • A segunda declaração de declaração declarou a variável 'gerente' do tipo de dados CHAR com o tamanho máximo de 10 e atribuiu o valor 'guru99' que é de 6 bytes. O Oracle alocará a memória de 10 bytes em vez de 6 bytes neste caso.
VARCHAR2 Este tipo de dados armazena a string, mas o comprimento da string não é fixo.
  • A restrição de tamanho para este tipo de dados é de 1-4000 bytes para o tamanho da coluna da tabela e 1-32767 bytes para variáveis.
  • O tamanho é definido para cada variável no momento da declaração da variável.
  • Mas o Oracle alocará memória somente depois que a variável for definida, ou seja, o Oracle considerará apenas o comprimento real da string que está armazenada em uma variável para alocação de memória, em vez do tamanho que foi fornecido para uma variável na parte da declaração.
  • É sempre bom usar VARCHAR2 em vez do tipo de dados CHAR para otimizar o uso de memória.
manager VARCHAR2(10) := ‘guru99';
Explicação da sintaxe:
  • A declaração de declaração acima declarou a variável 'gerente' do tipo de dados VARCHAR2 com o tamanho máximo de 10 e atribuiu o valor 'guru99' que é de 6 bytes. O Oracle alocará memória de apenas 6 bytes neste caso.
VARCHAR Isso é sinônimo do tipo de dados VARCHAR2.
  • É sempre uma boa prática usar VARCHAR2 em vez de VARCHAR para evitar mudanças comportamentais.
manager VARCHAR(10) := ‘guru99';
Explicação da sintaxe:
  • A declaração de declaração acima declarou a variável 'gerente' do tipo de dados VARCHAR com o tamanho máximo de 10 e atribuiu o valor 'guru99' que é de 6 bytes. O Oracle alocará memória de apenas 6 bytes neste caso. (Semelhante a VARCHAR2)
NCHAR Este tipo de dados é igual ao tipo de dados CHAR, mas o conjunto de caracteres será do conjunto de caracteres nacional.
  • Este conjunto de caracteres pode ser definido para a sessão usando NLS_PARAMETERS.
  • O conjunto de caracteres pode ser UTF16 ou UTF8.
  • A restrição de tamanho é de 1 a 2.000 bytes.
native NCHAR(10);
Explicação da sintaxe:
  • A declaração de declaração acima declara a variável 'nativa' do tipo de dados NCHAR com o tamanho máximo de 10.
  • O comprimento desta variável depende do (número de comprimentos) por byte conforme definido no conjunto de caracteres.
NVARCHAR2 Este tipo de dados é igual ao tipo de dados VARCHAR2, mas o conjunto de caracteres será do conjunto de caracteres nacional.
  • Este conjunto de caracteres pode ser definido para a sessão usando NLS_PARAMETERS.
  • O conjunto de caracteres pode ser UTF16 ou UTF8.
  • A restrição de tamanho é de 1-4000 bytes.
Native var NVARCHAR2(10):='guru99';
Explicação da sintaxe:
  • A declaração de declaração acima declara a variável 'Native_var' do tipo de dados NVARCHAR2 com o tamanho máximo de 10.
LONG e LONGRAW Este tipo de dados é usado para armazenar texto grande ou dados brutos até o tamanho máximo de 2 GB.
  • Eles são usados ​​principalmente no dicionário de dados.
  • O tipo de dados LONG é usado para armazenar dados do conjunto de caracteres, enquanto LONG RAW é usado para armazenar dados em formato binário.
  • O tipo de dados LONG RAW aceita objetos de mídia, imagens, etc., enquanto LONG funciona apenas com dados que podem ser armazenados usando o conjunto de caracteres.
Large_text LONG;Large_raw LONG RAW;
Explicação da sintaxe:
  • A declaração de declaração acima declara a variável 'Large_text' do tipo de dados LONG e 'Large_raw' do tipo de dados LONG RAW.
Observação: o uso do tipo de dados LONG não é recomendado pela Oracle. Em vez disso, o tipo de dados LOB deve ser preferido.

NUMBER tipo de dados:

Este tipo de dados armazena números de ponto fixo ou flutuante com até 38 dígitos de precisão. Este tipo de dados é usado para trabalhar com campos que conterão apenas dados numéricos. A variável pode ser declarada com detalhes de precisão e dígitos decimais ou sem essas informações. Os valores não precisam ser colocados entre aspas durante a atribuição para este tipo de dados.

A NUMBER(8,2);B NUMBER(8);C NUMBER;

Explicação da sintaxe:

  • Acima, a primeira declaração declara que a variável 'A' é do tipo de dados numéricos com precisão total 8 e dígitos decimais 2.
  • A segunda declaração declara que a variável 'B' é do tipo de dados numéricos com precisão total de 8 e sem dígitos decimais.
  • A terceira declaração é a mais genérica, declara que a variável 'C' é do tipo número de dados sem restrição de precisão ou casas decimais. Pode levar até um máximo de 38 dígitos.

Tipo de dados BOOLEANO:

Este tipo de dados armazena os valores lógicos. Ele representa VERDADEIRO ou FALSO e é usado principalmente em declarações condicionais. Os valores não precisam ser colocados entre aspas durante a atribuição para este tipo de dados.

Var1 BOOLEAN;

Explicação da sintaxe:

  • Acima, a variável 'Var1' é declarada como tipo de dados BOOLEANO. A saída do código será verdadeira ou falsa com base no conjunto de condições.

Tipo de dados DATE:

Este tipo de dados armazena os valores em formato de data, como data, mês e ano. Sempre que uma variável é definida com o tipo de dados DATE junto com a data, ela pode conter informações de hora e, por padrão, as informações de hora são definidas como 12:00:00 se não for especificado. Os valores precisam ser colocados entre aspas durante a atribuição para este tipo de dados.

O formato de hora padrão do Oracle para entrada e saída é 'DD-MON-YY' e é novamente definido em NLS_PARAMETERS (NLS_DATE_FORMAT) no nível da sessão.

newyear DATE:='01-JAN-2015';current_date DATE:=SYSDATE;

Explicação da sintaxe:

  • Acima, a variável 'newyear' é declarada como tipo de dados DATE e atribuída o valor da data de de janeiro de 2015.
  • A segunda declaração declara a variável current_date como tipo de dados DATE e atribui o valor com a data atual do sistema.
  • Ambas as variáveis ​​contêm as informações de tempo.

Tipo de dados LOB:

Este tipo de dados é usado principalmente para armazenar e manipular grandes blocos de dados não estruturados, como imagens, arquivos multimídia, etc. O Oracle prefere LOB em vez do tipo de dados LONG, pois é mais flexível do que o tipo de dados LONG. A seguir estão algumas das principais vantagens do LOB em relação ao tipo de dados LONG.

  • O número de colunas em uma tabela com tipo de dados LONG é limitado a 1, enquanto uma tabela não tem restrição em um número de colunas com tipo de dados LOB.
  • A ferramenta de interface de dados aceita o tipo de dados LOB da tabela durante a replicação de dados, mas omite a coluna LONG da tabela. Essas colunas LONG precisam ser replicadas manualmente.
  • O tamanho da coluna LONG é de 2 GB, enquanto o LOB pode armazenar até 128 TB.
  • A Oracle está constantemente aprimorando o tipo de dados LOB em cada uma de suas versões de acordo com os requisitos modernos, enquanto o tipo de dados LONG é constante e não recebe muitas atualizações.

Portanto, é sempre bom usar o tipo de dados LOB em vez do tipo de dados LONG. A seguir estão os diferentes tipos de dados LOB. Eles podem armazenar até 128 terabytes.

  1. BLOB
  2. CLOB e NCLOB
  3. BFILE
Tipo de dados Descrição Sintaxe
BLOB

Este tipo de dados armazena os dados LOB no formato de arquivo binário até o tamanho máximo de 128 TB. Isso não armazena dados com base nos detalhes do conjunto de caracteres, para que possa armazenar os dados não estruturados, como objetos multimídia, imagens, etc.

Binary_data BLOB;

Explicação da sintaxe:

  • Acima, a variável 'Binary_data' é declarada como um BLOB.
CLOB e NCLOB

O tipo de dados CLOB armazena os dados LOB no conjunto de caracteres, enquanto o NCLOB armazena os dados no conjunto de caracteres nativo. Como esses tipos de dados usam armazenamento baseado em conjunto de caracteres, eles não podem armazenar dados como multimídia, imagens, etc. que não podem ser colocados em uma sequência de caracteres. O tamanho máximo desses tipos de dados é 128 TB.

Charac_data CLOB;

Explicação da sintaxe:

  • Acima, a variável 'Charac_data' é declarada como tipo de dados CLOB.
BFILE
  • BFILE são os tipos de dados que armazenam os dados de formato binário não estruturados fora do banco de dados como um arquivo do sistema operacional.
  • O tamanho do BFILE é para um sistema operacional limitado e eles são arquivos somente leitura e não podem ser modificados.

Resumo

Abordamos os diferentes tipos de dados simples disponíveis na PL / SQL junto com sua sintaxe. Aprenderemos sobre tipos de dados complexos em outros tópicos.