Composite Data Types

Os tipo de dados escalares já conhecemos muito bem nesse blog e os mais comuns são: caracteres, datas e números. Vamos então nos concentram nos compostos que possuem mais de um valor. Tipos de dados compostos são similares a uma linha de uma tabela com mais de uma coluna. Existe mais de um tipo de tipos de dados compostos. Que são:

  • SQL UDT
  • PL/SQL Record Type
  • SQL Collection
  • PL/SQL Collecion
  • Vamos ver um pouco sobre cada um desses tipos de dados, com mais posts irei falando e mostrando algumas características mais avançadas..

    SQL UDT

    UDT significa User Defined Type, ou seja, é um tipo de objeto definido pelo usuário. E ao criamos um novo tipo de objeto no banco de dados, definimos os seus atributos e métodos que é a sua especificação. Com respeito aos métodos eles podem ser estáticos ou instâncias de funções ou procedures. Também algo muito conhecido em Java, os construtores, que servem para inicializar de acordo com algumas instruções e lógicas, aceitando também a sobrecarga do construtor.

    Podemos definir esse novo objeto como final, mas se não fizermos, outros podem estender esse objeto, algo também muito conhecido em linguagens de orientação a objetos.

    Vejamos um exemplo da especificação juntamente com o corpo do objeto.

    TYPE

    TYPE

    nas linhas de 1 até a 5 criamos a especificação. Na linha 2 tem apenas um atributo do objeto, no caso o nome do tipo VARCHAR2. Na linha 3 indicamos que existe um construtor nesse objeto, mas sem argumentos, ou seja, o padrão, e para finalizar a especificação, temos na linha 4 uma função, que retorna um VARCHAR2 que será utilizado para retornar o atributo da linha 2.

    Das linhas 7 até a 17 temos o corpo do objeto, a implementação da especificação feita das linhas 1 à 5. As linhas 8 à 12 temos a definição do construtor sem argumentos. Onde irá retornar um objeto com o atributo nome, com a string “Construtor sem Argumentos”. Nas linhas 13 à 16 temos o corpo da função get_nome, onde ele retorna o atributo nome. Uma observação a se fazer tanto no construtor como na função é o uso da palavra reservada SELF, que é a instância do próprio objeto, que é o equivalente a THIS em Java. Na linha 9 uma instância do objeto é criada e passada para a variável lv_tipo_teste que é do tipo tipo_teste. Os construtores retornam uma instância do objeto e não atributos ou valores.

    Vamos complicar mais um pouco, vamos adicionar mais um construtor, sobrecarregar, e mais uma função.

    Das linhas de 1 à 7 temos as novas especificações, com a adição de um novo construtor, sobrecarregado, um com argumento, que já adiciona uma string para o atributo nome, e outro sem. E também a adição de uma nova função, a set_nome com um argumento do tipo VARCHAR2. Alteramos a forma como o construtor sem argumento funciona no corpo do objeto, nas linhas de 11 à 16 fazendo referência ao novo construtor nas linhas 17 à 21. A nova função está nas linhas 26 à 31 retornando um objeto do tipo_teste, pois função sempre tem que retornar algo, diferentemente de uma procedure. Vejam exemplos de usos na imagem abaixo agora.

    Anúncios

    Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

    Marcado com: , , , , , ,
    Publicado em PL/SQL

    Deixe um comentário

    Preencha os seus dados abaixo ou clique em um ícone para log in:

    Logotipo do WordPress.com

    Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

    Foto do Google

    Você está comentando utilizando sua conta Google. Sair /  Alterar )

    Imagem do Twitter

    Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

    Foto do Facebook

    Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

    Conectando a %s

    Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

    Esse Blog é reconhecido pela
    Certificações
    Sou articulista

    Clique para seguir este blog e receber notificações via email de novos posts.

    Tércio Costa

    Tércio Costa

    Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

    Links Pessoais

    Serviços verificados

    Visualizar Perfil Completo →

    Total de Visualizações da Página
    • 138.087 Visualizações
    %d blogueiros gostam disto: