Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Introdução aos VARRAYs PL/SQL no banco de dados Oracle




Os VARRAYs foram lançados no Oracle 8i em 1998 como uma versão modificada da coleção de tipos de tabelas aninhadas que discutimos nos blogs anteriores.

Leitura sugerida:Como criar uma tabela aninhada –


  • Como elemento de bloco PL/SQL
  • Como objeto de banco de dados
  • Usando tipo de dados definido pelo usuário



Agora você também pode testar seus conhecimentos sobre o assunto fazendo um teste aqui.

VARRAY é um tema importante porque se vê que geralmente sempre há uma questão sobre ele no exame de certificação. Para minimizar qualquer confusão, vamos primeiro dar uma breve olhada na introdução da coleção VARRAYs.

VARRAYs, que é um acrônimo de Variable Sized Arrays foram introduzidos no Oracle 8i em 1998 como um formato modificado de tabelas aninhadas. As principais modificações podem ser vistas na orientação de armazenamento. Não há mudanças perceptíveis na implementação, mas sua orientação de armazenamento é completamente diferente em comparação com as tabelas aninhadas.

Ao contrário da tabela aninhada que requer uma tabela externa para seu armazenamento, VARRAYs são armazenados em linha com seu registro pai como valor bruto na tabela pai. Isso significa que não há mais necessidade da cláusula STORE AS. Oh, que alívio, sem IOs desnecessários e ainda por cima com um desempenho aprimorado.

Podemos salvar e reutilizar VARRAYs?


Semelhante às tabelas aninhadas, os VARRAYs são do tipo persistente de coleção, o que significa que podem ser criados como objetos de banco de dados que podem ser salvos para uso posterior. VARRAYs também podem ser criados como membros de Blocos PL/SQL. O escopo do VARRAY que é declarado dentro de um bloco PL/SQL é limitado ao bloco em que foi criado.

Os VARRAYs são limitados ou ilimitados?


Ao contrário da tabela aninhada, os VARRAYs são uma forma de coleção limitada. Por delimitado quero dizer, você deve decidir quantos elementos deseja armazenar em sua coleção ao declará-la. Enquanto na tabela aninhada, que é um tipo de coleção ilimitado, não há limite superior no número de elementos.

Mecanismo de armazenamento de VARRAYs


O mecanismo de armazenamento de VARRAYs é a maior diferença, o que os torna uma escolha superior às tabelas aninhadas. Ao contrário das tabelas aninhadas que requerem uma tabela externa para seu armazenamento, VARRAYs são armazenados em linha com seu registro pai como valor bruto na tabela pai. Isso significa que não há exigência de cláusula STORE AS ou tabela de armazenamento separada.

O armazenamento em linha de VARRAYs ajuda na redução de entradas/saídas de disco (E/S), o que torna os VARRAYs mais eficientes em termos de desempenho do que a tabela aninhada. Mas quando os VARRAYs excedem 4K de dados, o Oracle segue o mecanismo de armazenamento fora de linha e armazena os VARRAYs como um LOB.

Sintaxe para criar VARRAYs PL/SQL


Nesta seção veremos a sintaxe para criar VARRAYs como
  • Objeto de banco de dados e
  • Membro do bloco PL/SQL.

Você pode acessar o vídeo sobre o mesmo tópico no meu canal do YouTube, onde expliquei essas duas sintaxes em detalhes.

VARRAY como objeto de banco de dados

CREATE [OR REPLACE] TYPE type_name
IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;

VARRAY como membro do Bloco PL/SQL

DECLARE
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF
element_type;

Ambas as sintaxes acima são as mesmas da tabela aninhada, exceto que aqui temos uma cláusula adicional que é Size_Limit. Limite de tamanho é um número inteiro que indicará o número máximo de elementos que seu VARRAY pode conter.

Lembre-se sempre semelhante à tabela aninhada, podemos declarar VARRAY apenas na seção de declaração do bloco PL/SQL.

Como modificar o limite de tamanho da coleção de tipos VARRAYs?


O limite de tamanho de um VARRAY pode ser alterado usando a instrução ALTER TYPE DDL.
ALTER TYPE type_name MODIFY LIMIT new-size-limit [INVALIDATE | CASCADE]

Onde:

ALTERAR TIPO é uma frase reservada que indica ao compilador qual ação DDL você deseja executar.

TIPO NOME é o nome do tipo que você deseja alterar.

MODIFICAR LIMITE é uma cláusula que informa ao compilador que o usuário deseja modificar o limite de tamanho.

NOVO-LIMITE DE TAMANHO é um inteiro que será o novo limite de tamanho do seu VARRAY.

INVALIDAR cláusula é uma cláusula opcional que invalidará todos os objetos dependentes sem nenhum mecanismo de verificação.

cláusula CASCADE novamente é uma cláusula opcional que propagará mudanças para tipos e tabelas dependentes.

 

Como descartar uma coleção do tipo VARRAY?


Para eliminar um tipo VARRAY, você pode obter ajuda da instrução DROP DDL.
DROP TYPE type_name [FORCE];

Onde:

Tipo de gota

É uma instrução DDL usando a qual você pode descartar qualquer tipo criado em seu banco de dados.

Nome do tipo

Nome do tipo é o nome de um tipo já criado que você deseja descartar.

Força

Especifique FORCE para descartar o tipo, mesmo que tenha objetos de banco de dados dependentes. O Oracle Database marca como UNUSED todas as colunas dependentes do tipo a ser descartado e essas colunas se tornam inacessíveis. Lembre-se de que esta operação não é recuperável e pode fazer com que os dados nas tabelas ou colunas dependentes fiquem inacessíveis.

Espero que você tenha aprendido algo novo. Agora você pode testar seus conhecimentos sobre o assunto fazendo um teste aqui. Ajude-nos a crescer compartilhando este blog em suas redes sociais. Desta forma, você também pode ajudar seus amigos na aprendizagem. Obrigado e tenha um ótimo dia!