Criação de Tabelas com Referencia - Oracle 10g

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
daniel.braque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 21 Out 2008 10:02 am
Localização: São Paulo
______________
Daniel Braque

Bom dia a todos!
Estou fazendo TCC sobre banco de dados objeto-relacional, estou parado em uma parte de criação e manupilução das tabelas usando referencia (REF).
Segue um exemplo:

Selecionar tudo

CREATE TYPE T_PRODUTOS AS OBJECT(
                 CODPROD INTEGER,
                 DESCRICAO VARCHAR(50))

CREATE TABLE PRODUTOS OF T_PRODUTO
                 (CODPROD PRIMARY KEY)

CREATE TABLE NOTAS_ITENS (
                 CODITEM INTEGER,
                 QTDE NUMERIC (10,2),
                 preço NUMERIC (10,2),
                 PRODUTO REF(T_PRODUTO))
Faço a inserção de registros na tabela de "Produtos" normalmente:

Selecionar tudo

INSERT INTO PRODUTOS VALUES (1,'TESTE')
logo após vou inserir na tabela de "NotasItens":

Selecionar tudo

INSERT INTO NOTAS_ITENS VALUES
(100, 10, 10, (SELECT REF(P) FROM Produtos P WHERE p.codprod = 1))
Esse comando funciona perfeitamente, o próximo passo seria fazer uma SELECT na tabela de NotasItens:

Selecionar tudo

SELECT *FROM NOTASITENS
Quando faço essa select o Oracle dá um erro falando que está sendo retornado tipo de dados invádios, esperava NUMBER e obteve SYSTEM.T_Produtos.

Isso já aconteceu com alguém?
daniel.braque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 21 Out 2008 10:02 am
Localização: São Paulo
______________
Daniel Braque

Se alguém tiver algum material referente ao comando "REF" e puder me enviar...
thiago.pinheiro
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Seg, 23 Jun 2008 11:06 am
Localização: Uberlândia - MG
======================
"Quando todos pensam o mesmo,
ninguém está pensando!"
======================

O nome da tabela é NOTAS_ITENS ou NOTASITENS?
daniel.braque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 21 Out 2008 10:02 am
Localização: São Paulo
______________
Daniel Braque

é NOTAS_ITENS, escrevi errado na select, mas o problema continua mesmo assim...
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Encontrei este link abaixo, bem completo sobre objetos REF no Oracle.

Só não coloquei na íntegra aqui no fórum pela quantidade de informações do texto.

http://www.acs.ilstu.edu/docs/oracle/ap ... tm#i454653

Qualquer dúvida, manda pra gente.
daniel.braque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 21 Out 2008 10:02 am
Localização: São Paulo
______________
Daniel Braque

Beleza cara, vi que tem muita coisa mesmo, vou tentar implementar palas informações que tem lá!

Valeu! :D
daniel.braque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Ter, 21 Out 2008 10:02 am
Localização: São Paulo
______________
Daniel Braque

Pessoal,

Depois de um certo tempo acabei conseguindo achar o erro, to postando como usa o comando DEREF para conhecimento de todos.

Selecionar tudo

SELECT DEREF(PRODUTO).CODPROD, DEREF(PRODUTO).DESCRICAO, QTDE, PREÇO FROM NOTAS_ITENS
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes