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

No trackbacks/pingbacks yet.

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

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>

(obrigatório)

(obrigatório)