Responder a este comentário
Tipo collection / conjunto , diferenças entre SET , LIST e MULTISET
Um campo do tipo collection é um conjunto, onde é possível ter mais
de um dado no mesmo campo/registro. Existem 3 tipos de dados de conjunto:
- SET : Nao ordenado , itens unicos.
Se especificado um item duplicado, ele é automaticamento "unificado" em apenas um item. - MULTISET: Nao ordenado , itens duplicados.
- LIST : Ordenado , itens duplicados.
Por se tratar deu um item ordenado, quando manipulado com SPL (Stored Procedure) ou ESQL/C e é feito a inclusao de um item no campo, é necessário especificar a posiçao que o dado ocupará.
Todas as referencias literais feitas no SQL aos tipos de dados collection devem obedecer a sintaxe abaixo.
# Sintaxe: [SET|MULTISET|LIST]{} # Exemplo de como um dado é retornado select first 1 tabid , set{1,2,3,1} as set , multiset{1,2,3,2,1} as multi , list{"a","b","c","a","b"} as list from systables; Database selected. tabid 1 set SET{1 ,2 ,3 } multi MULTISET{1 ,2 ,3 ,2 ,1 } list LIST{'a','b','c','a','b'} 1 row(s) retrieved. Database closed.
Na definiçao de uma tabela com campo do tipo conjunto é obrigatório incluir o parametro NOT NULL:
CREATE TABLE xyz ( funcoes set( integer not null) );
Na manipulação de um campo com SPL ou ESQL/C é possivel listar, adicionar e remover item a item de um conjunto. Exite muitas maneiras e tratar este tipo de campo, para maiores informações leia o artigo Como manipular dados do tipo collection / conjunto ( set , list, multiset ).
Para identificar quantos itens existe um campo collection, utilizar a funçao cardinality().
- 653 leituras
Tags:




