Master Details - View

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
danielpbarros
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 67
Registrado em: Dom, 15 Jan 2012 9:34 pm
Contato:
Daniel Barros

Boa tarde pessoal,
estou tentando criar um form Master Details a partir de 2 views. Uma view para o "cabeçalho" e a outra view para o detalhamento.
Quando crio o form através de duas tabelas (por exemplo: tabela de NF e tabela de itens NF) funciona perfeitamente, agora com as view me retorna o erro ORA-01445.

alguém já passou por tal situação?

abs.
Daniel.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá Daniel,

Algumas observações:
ORA-01445: cannot select ROWID from a join view without a key-preserved table
Cause: A SELECT statement attempted to select ROWIDs from a view derived from a join operation. Because the rows selected in the view do not correspond to underlying physical records, no ROWIDs can be returned.
Action: Remove ROWID from the view selection clause, then re-execute the statement.
Não sei se as queries que compõe a suas VIEWs correspondem a queries de JOIN envolvendo duas ou mais tabelas.

Se for este o caso, provavelmente você não conseguirá fazer um UPDATE ou DELETE nas mesmas, pois o ORACLE não saberá neste caso qual exatamente o ROWID (endereço único) onde se localiza o registro da tabela que precisa ser atualizado.

Ou então, não sei se as tabelas que você criou possuem PRIMARY KEY (PK). Se você se esqueceu de criar as PKS, recomendo que crie as mesmas nas tabelas e faça um novo teste.

Se não resolver e a querie de sua VIEW for composta de com outras tabelas, tente simplificar a VIEW de forma que somente a tabela a ser atualizada seja relacionada na view.

Alguns links que tratam deste tema:

http://asktom.oracle.com/pls/asktom/f?p ... 8422757486
http://www.dba-oracle.com/t_ora_01445_c ... _table.htm

Abraços,

Sergio Coutinho
danielpbarros
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 67
Registrado em: Dom, 15 Jan 2012 9:34 pm
Contato:
Daniel Barros

Opa, Valeu pela resposta.
Eu resolvi de outra maneira, fiz diretamente pelas tabelas. Mas o Master Details com utilização de Views (mesmo que as tabelas que compõe a view tenham PK) ainda é um pouco obscuro. Mas estarei lendo os links informados.
Agradeço a atenção.

Daniel.
Responder
  • Informação
  • Quem está online

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