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.
Master Details - View
-
- Rank: Programador Sênior
- Mensagens: 67
- Registrado em: Dom, 15 Jan 2012 9:34 pm
- Contato:
Daniel Barros
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá Daniel,
Algumas observações:
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
Algumas observações:
Não sei se as queries que compõe a suas VIEWs correspondem a queries de JOIN envolvendo duas ou mais tabelas.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.
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
-
- 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.
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.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante