Durante o uso de DM PL / SQL, se quisermos armazenar um único dado, podemos armazená-lo declarando variáveis. Se quisermos armazenar uma única linha e várias colunas de dados, podemos usar o tipo de registro (registro), se quisermos Para salvar dados em uma única coluna e várias linhas, você pode usar o tipo de coleção para armazená-los. Este artigo irá apresentar a você vários tipos de coleção comumente usados no banco de dados Dameng e suas características.
1. Tabela de índice
As características da tabela de índice:
1. Você pode usar números ou letras como subscritos
2. Você pode usar números negativos ao usar números como subscritos
3. Ele só pode ser usado em um bloco PL / SQL e não pode ser usado como um campo de tabela
Vamos fazer alguns testes, primeiro de tudo, a tabela de índice com números como subscritos
declarar
Tipo index_tab_type é tabela de VARCHAR (30) índice por int;
v_table index_tab_type;
início
v_table (-1): = 'hello'; - Defina o valor do elemento cujo subscrito é -1
v_table (1): = 'e'; - definir o valor do elemento cujo subscrito é 1
v_table (5): = 'mundo';
print ('O número de elementos é:' || v_table.count);
print ('O primeiro elemento é' || v_table (v_table. first )); - imprime o primeiro elemento
print ('O último elemento é' || v_table (v_table. last )); - produz o último elemento
fim ;
Os resultados da execução são os seguintes
Depois, há uma tabela de índice com letras como subscritos
declarar
Tipo index_tab_type é tabela de VARCHAR (30) índice de VARCHAR (1);
v_table index_tab_type;
início
v_table ('a'): = 'hello'; - Defina o valor do elemento cujo subscrito é -1
v_table ('c'): = 'mundo';
print ('Número de elementos:' || v_table.count);
print ('O primeiro elemento' || v_table (v_table. first ));
print ('último elemento' || v_table (v_table. last ));
fim ;
Resultado de saída
Pode-se ver que ao usar caracteres como subscritos, o armazenamento da tabela de índice é semelhante ao armazenamento de valores-chave
2. Varray (matriz de comprimento variável)
Características do Varray:
1. A capacidade máxima deve ser declarada no momento da declaração.
2. A inicialização é necessária para o primeiro uso.
3. O tamanho real é 0 durante a inicialização e o método extend precisa ser usado para expandir o limite superior para aumentar o elemento.
Aqui mudamos de outra forma, salvamos os nomes de 5 pessoas com IDs de 1001 a 1005 na tabela de funcionários da biblioteca de amostra DMHR neste varray, o teste é o seguinte
DECLARAR
TYPE MY_ARRAY_TYPE IS VARRAY (10) OF VARCHAR (100); - Declarar um varray com uma capacidade máxima de 100
v MY_ARRAY_TYPE;
INÍCIO
v: = MY_ARRAY_TYPE (); --Inicializar varray
PARA I EM 1..5 LOOP
v.EXTEND (); - Limite de expansão
SELECIONE nome_do_ funcionário INTO v (I) DE dmhr.employee
WHERE id_do_pregador = 1000 + i;
END LOOP ;
PRINT 'v.COUNT () =' || v.COUNT ();
PARA I EM 1..v.COUNT () LOOP
PRINT 'v (' || i || ') =' || v (i);
END LOOP ;
END ;
Resultado de saída
Deve-se observar que quando varray é usado, extend deve ser usado para expandir o limite superior, caso contrário, haverá um erro de que o subscrito da coleção está fora do intervalo.
Por questões de espaço, o conteúdo desta edição está aqui. Na próxima edição do compartilhamento, continuaremos a apresentar a você o uso de tabelas aninhadas e tipos de array, portanto, fique atento.