Oracle force view ( insert into view )
Vamos criar uma view que atualiza os dados nas tabelas que a view tem.
1. Vamos criar uma tabela para o select na view
create table tabelaTeste (
nome varchar2(200) not null,
endereco varchar2(200) not null
);
2. Agora vamos criar uma view normal, mas utilizando o atributo force para que eu possa atualizar a tabela que a view tem.
create force view myviewTeste as
select nome, endereco, 'T' as flag
from tabelaTeste;
3. E agora vamos inserir os dados na view… ops na tabela pois a view vai buscar da tabela.
insert into myviewTeste (nome, endereco)
values ('Rafael Stoever', 'Rua daqui nro. 200');
4. Bingoooo ai estão os dados da view, e se quizer dar um select na tabela estão ai tbm.
select * from myviewTeste;
nome endereco
-------- -----------
Rafael Stoever Rua daqui nro. 200
5. Caso queira inserir algo no terceiro campo por exemplo desta view, irá aparecer uma mensagem dizendo que este campo é virtual e tals.. então tenha o cuidado com campos virtuais e campos not null’s.
Trackbacks & Pingbacks
Comments
Deixe um comentário
Quebras de linha e parágrafo automáticas, seu email nunca será mostrado, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
3. E agora vamos inserir os dados na view… ops na tabela pois a view vai buscar da tabela.
insert into myviewTeste (nome, endereco)
values (’Rafael Stoever’, ‘Rua daqui nro. 200′);
Duvida é na view ou na tabela???? Se for na tabela a query esta incorreta.
É o seguinte Lucas, no momento que é feito uma view simples podemos executar comandos DML na view que irá afetar a tabela, porem se for feito uma view complexa do tipo com join por exemplo irá gerar um erro ao tentar executar o comando DML.
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view
Qualquer duvida favor entrar em contato