racle içinde bir view oluştururken * karakteri, kolon isimleri ile yer değiştirilerek kaydedilir. Bu nedenle view oluştururken * bırakıp, daha sonra tablo değişimlerinden etkilenmemesini sağlamak mümkün değildir. O nedenle view oluştururken bunu dikkate almak gerekir.
Aşağıda bunun bir örnek senaryosu bulunmaktadır.
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as HR
SQL>
SQL> drop table tt;
Table dropped
SQL> drop view vtt;
View dropped
SQL> create table tt(x number);
Table created
SQL> create view vtt as select * from tt;
View created
SQL> select * from vtt;
X
----------
SQL> select uv.text from user_views uv where uv.view_name = 'VTT';
TEXT
--------------------------------------------------------------------------------
select "X" from tt
SQL> alter table tt add(y number);
Table altered
SQL> select * from vtt;
X
----------
SQL> select status from user_objects uo where uo.object_name = 'VTT';
STATUS
-------
VALID
SQL> alter table tt drop column x;
Table altered
SQL> select status from user_objects uo where uo.object_name = 'VTT';
STATUS
-------
INVALID
SQL>
No comments:
Post a Comment