pl sql data types variables
Este tutorial explica o que são tipos de dados, variáveis, constantes e literais PL SQL em detalhes com a ajuda de exemplos de programação:
No tutorial anterior do PL / SQL series , conhecemos o PL / SQL com seus recursos e sintaxe básica com exemplos.
Neste artigo, discutiremos os diferentes tipos de dados suportados pela PL / SQL. Além disso, exploraremos as variáveis e constantes usadas extensivamente no PL SQL.
Literais PL / SQL também são importantes e aprenderemos sobre isso neste tutorial, juntamente com seu uso prático.
O que você aprenderá:
Tipos de dados Pl SQL
Todas as variáveis, constantes e parâmetros da PL / SQL têm um tipo de dados específico que define sua faixa de valores, restrições e o formato em que são armazenados. PL / SQL contém os tipos de dados como Large Object, também conhecidos como LOB, Scalar, Reference e Composite.
Tipos de dados escalares
Vamos primeiro discutir os tipos de dados escalares que consistem no seguinte:
- NUMÉRICO tipos de dados que lidam com valores nos quais as operações matemáticas são feitas.
- BOLEANO tipos de dados que lidam com os valores nos quais as operações lógicas são realizadas.
- PERSONAGEM tipos de dados que lidam com os valores que consistem em valores alfanuméricos.
- DATA HORA tipos de dados.
Tipos de dados numéricos
O tipo de dados numérico de PL / SQL consiste no seguinte:
- BINARY_FLOAT
- BINARY_INTERGER
- PLS_INTEGER
- BINARY_DOUBLE
- DECIMAL
- NUMÉRICO
- NÚMERO
- FLUTUADOR
- INT
- INTEIRO
- DUPLA PRECISÃO
- REAL
- SMALLINT
- DEZ
Snippet de código com tipos de dados numéricos:
DECLARE numA INTEGER := 10; numB NUMBER(10) := 10.8; numC DOUBLE PRECISION := 10.6; BEGIN dbms_output.put_line('The numA is: ' || numA); dbms_output.put_line('The numB is: ' || numB); dbms_output.put_line('The numC is: ' || numC); END; /
No código acima, temos os tipos de dados INTEGER, NUMBER e DOUBLE PRECISION com as variáveis numA, numB e numC respectivamente. numB tem um tipo de dados numérico com precisão 10 e não possui dígitos após o decimal.
A saída do código acima deve ser:
Tipos de dados de caracteres
Os tipos de dados de caracteres do PL / SQL consistem no seguinte, conforme listado abaixo:
# 1) VARCHAR2: Este tipo de dados irá armazenar string, mas o comprimento da string não é fixo no momento da declaração. O varchar2 tem um tamanho máximo de até 32.767 bytes. A largura máxima de uma coluna de banco de dados varchar2 é 4000 bytes.
Sintaxe:
teste VARCHAR2 (20): = ‘SoftwareTest’;
# 2) CHAR: Este tipo de dados irá armazenar string, mas o comprimento da string é fixo no momento da declaração. O char tem um tamanho máximo de 32.767 bytes. A largura máxima de uma coluna de banco de dados char é de 2.000 bytes.
Sintaxe:
teste CHAR2 (20): = ‘SoftwareTest’;
# 3) NCHAR: Isso é semelhante a CHAR, mas armazenará apenas o conjunto de caracteres nacionais. O NCHAR tem um tamanho máximo de até 32.767 bytes. A largura máxima de uma coluna do banco de dados NCHAR é de 2.000 bytes.
Sintaxe:
teste NCHAR2 (20);
# 4) LONGO: Isso armazenará cadeias de caracteres de comprimento variável. O longo tem um tamanho máximo de até 32.760 bytes.
Sintaxe:
teste LONG;
# 5) LINHA LONGA: Isso armazenará dados em formato binário ou sequências de bytes. A linha longa tem um tamanho máximo de até 32.760 bytes.
quem é responsável pelo valor de negócios fornecido por uma equipe scrum?
Sintaxe:
teste LONG ROW;
# 6) ROWID: Estes são os identificadores físicos de uma linha que aponta para o endereço de uma linha em uma tabela normal.
# 7) UROWID: Esses são os identificadores universais de linhas.
# 8) NVARCHAR2: Isso é semelhante a VARCHAR2, mas armazenará apenas o conjunto de caracteres nacionais. A largura máxima de uma coluna de banco de dados nvarchar2 é de 4000 bytes.
# 9) VARCHAR: Isso é semelhante a VARCHAR2.
Sintaxe:
teste VARCHAR2 (20): = ‘SoftwareTest’;
Vamos agora discutir os tipos de dados de caracteres do PL / SQL em formato tabular.
Sim. Não. | Tipo de dados | Descrição |
---|---|---|
7 | LONGROW | Isso é semelhante a LONG. Esses dados não são interpretados pelo PL / SQL. |
1 | VARCHAR2 | Isso é usado para armazenar os dados de caractere de comprimento variável. O tamanho é definido para as variáveis no momento da declaração. É sempre recomendado usar VARCHAR2 para uso efetivo da memória. |
dois | CARACTERES | Isso é usado para armazenar os dados de caractere de comprimento fixo. O tamanho é definido para as variáveis no momento da declaração. É sempre recomendado usar CHAR quando os dados de tamanho fixo devem ser usados. |
3 | VARCHAR | Isso é semelhante a VARCHAR2. É sempre recomendável usar VARCHAR durante a implementação do código. |
4 | NCHAR | Isso é usado para armazenar os dados de caracteres que são dados de caracteres nacionais de comprimento fixo. O conjunto de caracteres é UTF 8 ou UTF 16. É sempre recomendável converter CHAR em NCHAR. Mas converter NCHAR em CHAR pode levar ao truncamento de dados. |
5 | NVARCHAR2 | Isso é usado para armazenar os dados de caracteres que são dados de caracteres nacionais de comprimento variável. Isso é semelhante a VARCHAR2. O conjunto de caracteres é UTF 8 ou UTF 16. É sempre recomendável converter VARCHAR2 em NVARCHAR2. Mas converter NVARCHAR2 em VARCHAR2 pode levar ao truncamento de dados. |
6 | LONGO | Isso é usado em um dicionário de dados. Isso é usado principalmente em dados de conjunto de caracteres. |
Tipos de dados booleanos
Esses tipos de dados de PL / SQL podem ser usados para armazenar valores lógicos. TRUE, FALSE e NULL são os valores booleanos.
SQL não possui tipos de dados BOOLEAN. Portanto, precisamos evitá-los nos seguintes cenários:
- Instruções PL / SQL geradas a partir de SQL.
- Funções padrão do PL / SQL.
- Instruções SQL normais.
Sintaxe:
test Boolean;
A saída da variável de teste será TRUE ou FALSE dependendo de certos critérios.
Tipos de dados de data e hora
Esses tipos de dados são usados para comprimentos constantes de data e hora. O intervalo adequado de datas começa de 1º de janeiro de 4712 aC a 31 de dezembro de 9999 dC, e o tempo é definido em termos de segundos. O formato de data embutido é DD-MON-AA, o que implica dois dígitos alocados para o dia do mês, nome do mês resumido e, em seguida, os dois últimos dígitos do ano.
Uma DATA consiste em segundo, minuto, dia, hora, mês, ano e século. Cada um desses campos tem um intervalo específico definido conforme listado abaixo:
- SEGUNDO: É definido no intervalo de 00 a 59,9.
- MINUTO: É definido no intervalo de 00 a 59.
- HORA: É definido no intervalo de 00 a 23.
- DIA: É definido no intervalo de 01 a 31.
- MÊS: É definido no intervalo de 01 a 12.
- ANO: É definido no intervalo de -4712 a 9999 (que não inclui 0).
- TIMEZONE_HOUR: É definido no intervalo de -12 a 14.
- TIMEZONE_MINUTE: É definido no intervalo de 00 a 59.
- TIMEZONE_REGION
- TIMEZONE_ABBR
Sintaxe:
TIMESTAMP '1990-06-04 9:00:00 US/Pacific' TIMESTAMP '1990-06-04 01:30:00 US/Pacific PDT'
Aqui, descrevemos o fuso horário usando símbolos. A especificação US / Pacific ou PDT é usada para definir um fuso horário específico. O formato PDT é mais usado, pois fornece as diretrizes ao alternar para o horário de verão.
Tipos de dados LOB
Vamos agora discutir os tipos de dados LOB que lidam com grandes blocos de dados consistindo em vídeos, sons, gráficos, imagens e assim por diante.
Os tipos de dados LOB têm inúmeras vantagens sobre os tipos de dados longos. Eles estão listados abaixo:
- Longo pode acomodar 2 GB, enquanto LOB pode conter 128 TB.
- Uma tabela pode ter uma única coluna do tipo LONG, enquanto pode haver várias colunas do tipo de dados LOB.
- O tipo de dados LOB está passando por melhorias e atualizações constantes do Oracle, enquanto o tipo de dados LONG não tem muitos aprimoramentos e atualizações.
Os tipos de dados LOB estão listados abaixo:
- BFILE: Isso é usado para manter dados não estruturados em formato binário fora do banco de dados como um arquivo do sistema operacional.
- NCLOB: Isso é usado para armazenar dados NCHAR enormes no banco de dados.
- CLOB: Isso é usado para armazenar dados enormes de tipo de caractere no banco de dados.
Sintaxe:
Binário CLOB;
- BLOB: Isso é usado para armazenar dados binários enormes no banco de dados.
Sintaxe:
Binary BLOB;
Implementação de código com alguns tipos de dados:
DECLARE m CHAR(20) := 'softwareTest!'; n VARCHAR2(30) := 'plsql'; o NCHAR(30) := 'plsql datatypes'; p NVARCHAR2(30) := 'plsql literals'; presentDt DATE:= SYSDATE; a INTEGER := 16; b NUMBER(20) := 11.2; c DOUBLE PRECISION := 14.7; BEGIN dbms_output.put_line('The char datatype is: ' || m); dbms_output.put_line('The varchar datatype is: ' || n); dbms_output.put_line('The nchar datatype is: ' || o); dbms_output.put_line('The nvarchar2 datatype is: ' || p); dbms_output.put_line('The current date is: ' || presentDt); dbms_output.put_line('The number a is: ' || a); dbms_output.put_line('The number b is: ' || b); dbms_output.put_line('The number c is: ' || c); END; /
A saída do código acima deve ser:
Variáveis PL SQL
Os nomes de variáveis PL / SQL seguem a convenção de nomenclatura que consiste em caracteres alfanuméricos de não mais que trinta. PL / SQL não faz distinção entre maiúsculas e minúsculas e as palavras-chave não devem ser usadas como uma variável.
O nome da variável deve ser significativo e pode ser seguido por um sublinhado (_), número ou dólar ($).
Declaração de Variável PL SQL
As variáveis do PL / SQL devem estar disponíveis na área de declaração ou presentes em um pacote como uma variável global. A PL / SQL reserva memória para as variáveis e a localização do armazenamento é definida pelo nome da variável.
Sintaxe para declaração de variável:
variable_name [CONSTANT] datatype [NOT NULL] [:= | DEFAULT initial_value]
Aqui, o variable_name é um identificador PL / SQL autêntico e o tipo de dados pode ser definido pelo usuário ou um tipo de dados PL / SQL confirmado.
Implementação de código para declaração de variável:
DECLARE v_namis VARCHAR2(10); n_addressis NUMBER(10,3); BEGIN dbms_output.put_line('The name is: ' || v_namis); dbms_output.put_line('The address is: ' || n_addressis); END;
A saída do código acima deve ser:
Observe, mencionamos a precisão e o tamanho do tipo de dados do número. Isso é conhecido como declaração restrita. Este tipo de declaração consome menos memória.
Inicialização de variável PL / SQL
Por padrão, o PL / SQL assume o valor de uma variável como NULL. No entanto, se não quisermos inicializar uma variável com NULL, isso pode ser obtido usando a palavra-chave DEFAULT ou com o operador de atribuição.
Sintaxe:
num integer := 50; test varchar(40) DEFAULT 'Software Test Help';
Também podemos definir que uma variável não deve ter valor NULL mencionando a restrição NOT NULL. No entanto, se a restrição NOT NULL for usada, temos que definir um valor para a variável.
Implementação de código com inicialização de variável:
DECLARE v_namis VARCHAR2(40) := 'softwareTest!'; n_couris VARCHAR2(30) := 'plsql'; BEGIN dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || n_couris); END; /
A saída do código acima deve ser:
Implementação de código com conceito de Atribuição:
DECLARE v_namis VARCHAR2(40); n_couris VARCHAR2(30); BEGIN v_namis := 'softwareTest!'; n_couris := 'plsql'; dbms_output.put_line('The value is: ' || v_namis); dbms_output.put_line('The value is: ' || v_couris); END; /
Aqui, o operador de atribuição (=) é usado para atribuir valores à variável.
A saída do código acima deve ser:
Escopo de Variável PL / SQL
Um bloco PL / SQL pode ter blocos internos de código. Se uma variável declarada faz parte do bloco interno, ela não pode ser utilizada pelo bloco externo. Mas uma variável que faz parte do bloco externo pode ser manipulada no bloco interno do código.
Esses tipos de variáveis são descritos abaixo:
- Variáveis globais: As variáveis que são declaradas no bloco ou pacote externo.
- Variáveis locais: As variáveis que são declaradas no bloco interno de código e não podem ser acessadas do bloco externo.
Implementação de código com variáveis globais e locais:
DECLARE -- Global variables val number := 10; BEGIN dbms_output.put_line('Global variable is : ' || val); DECLARE -- Local variables val number := 100; BEGIN dbms_output.put_line('Local variable is: ' || val); END; END; /
A saída do código acima deve ser:
Observe que a saída aqui, a variável global é: 10 (por causa da variável global val) e 'Variável local é: 100 (por causa da variável local val).
Âncora PL / SQL
As âncoras PL / SQL são definidas com a palavra-chave% TYPE para declarar variáveis com o tipo de dados conectado com o tipo de dados daquela coluna específica da tabela.
Snippet de código com âncora:
DECLARE v_namis RESSIDENT.NAME%TYPE; n_addessis RESSIDENT.ADDRESS%TYPE; BEGIN NULL; END; /
Aqui, temos uma tabela RESIDENT e estamos lidando com as colunas NAME e ADDRESS dessa tabela.
Constantes em PL / SQL
Uma constante mantém o valor declarado inalterado em todo o programa.
Declaração de constante PL / SQL
O CONSTANTE palavra-chave é usada para definir constantes no programa. Ele começa com um valor predefinido que permanece o mesmo durante todo o programa.
Sintaxe para declaração de variável:
const_name CONSTANT data type := val
Implementação de código com constante:
DECLARE -- Constant p constant number := 3.141592654; -- Radius declarations r number(10,1); a_circle number(10,3); BEGIN -- Area calculation r := 9.4; a_circle := p * r * r; -- Output in console dbms_output.put_line('Area of circle: ' || a_circle); END; /
A saída do código acima deve ser:
Literais em PL SQL
Um valor Booleano, Numérico ou String que não é definido por um identificador PL / SQL é chamado de literal. Os literais diferenciam maiúsculas de minúsculas e são dos seguintes tipos, conforme listado abaixo:
- Literais booleanos [ Por exemplo - FALSO VERDADEIRO ]
- Literais de caracteres [ Por exemplo - ‘s’, ‘7’, ‘)’]
- Literais de string [ Por exemplo - ‘Teste de Software’]
- Literais numéricos [ Por exemplo - 78, 04, 6,3]
- Literais de DATA e Hora [ Por exemplo - '25 -05-2012 ']
Perguntas e respostas mais frequentes
Q # 1) Quais são os tipos de dados no PL SQL?
Responda: Os tipos de dados PL SQL são compostos e escalares. Os tipos de dados escalares podem conter valores únicos como Character, Number, Boolean e DateTime. Enquanto os tipos de dados compostos armazenam mais de um valor, como coleta e registro.
Q # 2) Qual é a variável PL / SQL?
Responda: Uma variável PL SQL é um nome que ajuda um desenvolvedor a armazenar dados temporariamente durante a execução do programa. É um nome significativo atribuído à área de armazenamento. Todas as variáveis em PL / SQL pertencem a um tipo de dados específico.
P # 3) Como passar um parâmetro de data em PL / SQL?
Responda: Podemos passar um parâmetro de data em PL / SQL com a ajuda da palavra-chave DATE. Ele segue um formato fixo como ‘AAAA-MM-DD’.
Q # 4) Como você declara uma constante no PL / SQL?
Responda: Podemos declarar uma constante em PL / SQL com a ajuda da palavra-chave CONSTANT. Depois de CONSTANT, devemos mencionar o valor que é atribuído a ela. Este valor permanece fixo durante todo o programa.
Q # 5) Quantos tipos de literais estão disponíveis no PL / SQL?
Responda: Os tipos de literais em PL / SQL são Number, DateTime, Text e Integer.
Q # 6) As variáveis PL SQL diferenciam maiúsculas de minúsculas?
Responda: As variáveis PL SQL incluindo as palavras reservadas não fazem distinção entre maiúsculas e minúsculas. Por exemplo, BEGIN e start ambos têm o mesmo propósito.
Conclusão
Uma grande parte do PL / SQL que trata de tópicos como os vários tipos de dados usados e sua importância e as variáveis do PL SQL deve ser compreensível agora após a leitura deste tutorial.
Além disso, exploramos em detalhes as constantes e literais do PL SQL. Passe por cada um dos tópicos um por um e lentamente você dominará isso. PL / SQL é usado em indústrias de desenvolvimento web e de servidor atualmente.
No próximo tutorial, discutiremos a instrução PL / SQL Insert, Update, Delete, Select e outros tópicos relacionados.
Vamos ficar atentos para mais compartilhamento de conhecimento.
Leitura recomendada
- Variáveis Python
- Tipos de dados Python
- Tipos de dados e variáveis C # com exemplos
- Parametrização de dados JMeter usando variáveis definidas pelo usuário
- Tutorial do Data Mart - Tipos, exemplos e implementação do Data Mart
- Tipos de dados C ++
- Variáveis Java e seus tipos com exemplos
- Diferenças exatas de SQL vs NoSQL e saber quando usar NoSQL e SQL