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.
|
grade CHAR;manager CHAR (10):= 'guru99';Explicação da sintaxe:
|
VARCHAR2 | Este tipo de dados armazena a string, mas o comprimento da string não é fixo.
|
manager VARCHAR2(10) := ‘guru99';Explicação da sintaxe:
|
VARCHAR | Isso é sinônimo do tipo de dados VARCHAR2.
|
manager VARCHAR(10) := ‘guru99';Explicação da sintaxe:
|
NCHAR | Este tipo de dados é igual ao tipo de dados CHAR, mas o conjunto de caracteres será do conjunto de caracteres nacional.
|
native NCHAR(10);Explicação da sintaxe:
|
NVARCHAR2 | Este tipo de dados é igual ao tipo de dados VARCHAR2, mas o conjunto de caracteres será do conjunto de caracteres nacional.
|
Native var NVARCHAR2(10):='guru99';Explicação da sintaxe:
|
LONG e LONGRAW | Este tipo de dados é usado para armazenar texto grande ou dados brutos até o tamanho máximo de 2 GB.
|
Large_text LONG;Large_raw LONG RAW;Explicação da sintaxe:
|
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 1º 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.
- BLOB
- CLOB e NCLOB
- 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:
|
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:
|
BFILE |
|
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.