Followup July 19, 2010 - 1pm Central time zone:
no it isn't, you have the row duplicated in your system.
that is, you ran:
create table t (vno number , email_addr1 varchar2(30), email_addr2 varchar2(30));
insert into t values(1100,'ss@hotmail.com','james@yahoo.com');
select vno, decode(r,1,email_addr1,2,email_addr2) from t,
(select 1 r from dual union all select 2 r from dual);
twice, the first time you ran it - one row:
ops$tkyte%ORA10GR2> create table t (vno number , email_addr1 varchar2(30), email_addr2
varchar2(30));
insert into t values(1100,'ss@hotmail.com','james@yahoo.com');
Table created.
ops$tkyte%ORA10GR2> insert into t values(1100,'ss@hotmail.com','james@yahoo.com');
1 row created.
ops$tkyte%ORA10GR2> select vno, decode(r,1,email_addr1,2,email_addr2) from t,
2 (select 1 r from dual union all select 2 r from dual);
VNO DECODE(R,1,EMAIL_ADDR1,2,EMAIL
---------- ------------------------------
1100 ss@hotmail.com
1100 james@yahoo.com
the second time you just didn't realize it failed on the create (you didn't drop it)
ops$tkyte%ORA10GR2> create table t (vno number , email_addr1 varchar2(30), email_addr2
varchar2(30));
create table t (vno number , email_addr1 varchar2(30), email_addr2 varchar2(30))
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
ops$tkyte%ORA10GR2> insert into t values(1100,'ss@hotmail.com','james@yahoo.com');
1 row created.
ops$tkyte%ORA10GR2> select vno, decode(r,1,email_addr1,2,email_addr2) from t,
2 (select 1 r from dual union all select 2 r from dual);
VNO DECODE(R,1,EMAIL_ADDR1,2,EMAIL
---------- ------------------------------
1100 ss@hotmail.com
1100 james@yahoo.com
1100 ss@hotmail.com
1100 james@yahoo.com
so, operator error.