Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 17 anos atrás por Kamikase.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #85434
    Kamikase
    Participante

      Opa pessoal, blz? o/

      To com um pequeno problema aqui na empresa e queria uma ajuda…

      Estou desenvolvendo uma procedure dentro de uma package que vai retornar dados para um programa em java. Um dos parâmetros de saída da procedure é um array (IS TABLE OF) que declarei dentro do corpo da package.

      Até ai blz, desenvolvi e testei tudo bonitinho, funcionando q é uma beleza, só q me disseram q o java não reconhece o tipo do IS TABLE OF do Oracle, e também não consegue utilizar o TYPE criado dentro da package pq ele fica private, sem acesso externo, ai pediram pra fazer a criação dos arrays externamente, fora da package.

      Fiz o script para criar os tipos como OBJECT TYPE e deu erro de compilação. Quando fui ver, o Oracle ñ aceitou a palavra TABLE na briação do tipo. Segue abaixo o q eu fiz:

      CREATE OR REPLACE TYPE COLLECTION_TABLE IS TABLE OF SYSADM.COLLECTION_RECORD INDEX BY BINARY_INTEGER;

      COLLECTION_RECORD é um objeto já criado no banco.

      Deu o seguinte erro:

      PLS-00355: use of pl/sql table not allowed in this context

      Como o cara q manja disso já foi embora e ñ acho isso na internet, resta recorrer ao fórum.

      Tenho quase certeza q é erro na sintaxe, q tem outra maneira de fazer isso, mas ñ sei como =/

      #85452
      Avatar photoLeonardo Litz
      Participante

        Olá Kamikase…

        Qual a versão do seu banco de dados?

        Na versão 9i sei que não é possível indexar um type global.

        Devendo o seu comando ficar assim:

        CREATE OR REPLACE TYPE COLLECTION_TABLE IS TABLE OF SYSADM.COLLECTION_RECORD;

        Creio que na 10g possa.

        Grato Leonardo Litz

        #85454
        Kamikase
        Participante

          Agora consegui XD

          Estou usando a versão 9i, tirei o INDEX BY BINARY_INTEGER e funfou.

          Tinha conseguido fuçando aqui, ia portar a solução, mas vi seu post.
          Vlw do msm jeito cara

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.