Oracle force view ( insert into view )

2

Posted on : 18-07-2006 | By : .rafa | In : Banco de Dados, Oracle

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.

Comments

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

Post a comment

*