ORA-00918: column ambiguously defined

Kosturulan sorguda SELECT ile tablolardan istenen sutun isimlerinin benzersiz olmasi gerekmektedir. Ayni sutun ismi birden cok tabloda kullanilmis olabilir. Ayni isimli sutunlari olan tablolar SELECT * sorgusunda JOIN veya INNER Select ile baglandiginda bu hata ile karsilasilir. SELECT * ile tum tablolarin tum sutunlarini secmek yerine hangi tablodan hangi sutunu istediginiz ayri ayri yazmak ve sorgu icinde sutunlari column alias ile gostermek hatayi giderecektir.

Oracle column alias in nasil yapildigina ornek verecek olursak;

# column_name AS alias_name
SQL> create table t1( t1_id number primary key, col1 integer ) organization index;

Table created.

SQL> create table t2( t2_id number primary key, id number ) organization index;

Table created.

SQL> --// code works 
SQL> select t1_id, t2_id, col1 from t1, t2 where t1_id = id;

no rows selected

SQL> --// data changes, scope impacted
SQL> alter table t2 add (col1 varchar2(10));

Table altered.

SQL> --// same code no longer works
SQL> select t1_id, t2_id, col1 from t1, t2 where t1_id = id;
select t1_id, t2_id, col1 from t1, t2 where t1_id = id
                     *
ERROR at line 1:
ORA-00918: column ambiguously defined