14 September 2006

Asteriks Character On Creating Views In Oracle

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: