| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Is User_tab_columns correct?
Hi,
I made additional investigations in the problem. It seems the problem is with sys.coltype$ table. The same column is written two times with different types in it:
SVRMGR> drop table test;
Statement processed.
SVRMGR> drop type t_test2;
Statement processed.
SVRMGR> drop type t_test1;
Statement processed.
SVRMGR>
SVRMGR> create or replace type t_test1 as object
2> (id integer
3> );
SVRMGR>
SVRMGR> create or replace type t_test2 as object
2> (t2 ref t_test1
3> );
SVRMGR>
SVRMGR> create table test
2> (x t_test2
3> );
SVRMGR>
SVRMGR> select column_name,data_type
2> from user_tab_columns
3> where table_name='TEST';
COLUMN_NAME DATA_TYPE
------------------------------ ------------------------------
X T_TEST2
X T_TEST1
SVRMGR>
SVRMGR> select col#,toid from sys.coltype$
2> where obj#=(select obj# from sys.obj$
3> where owner#=userenv('schemaid')
4> and name='TEST');
COL# TOID
---------- --------------------------------
1 714449D5749F11D2A7CF008048E3A7FA
1 714449D2749F11D2A7CF008048E3A7FA
2 rows selected.
Is this a correct behaviour? How to find real type of the column?
Andrew Protasov
> Hi,
>
> I found something interesting with user_tab_columns in
> Oracle 8.0.3. Try this:
>
> SVRMGR>
> SVRMGR> drop table test;
> Statement processed.
> SVRMGR> drop type t_test2;
> Statement processed.
> SVRMGR> drop type t_test1;
> Statement processed.
> SVRMGR>
> SVRMGR> create or replace type t_test1 as object
> 2> (id integer
> 3> );
> Statement processed.
> SVRMGR>
> SVRMGR> create or replace type t_test2 as object
> 2> (t2 ref t_test1
> 3> );
> Statement processed.
> SVRMGR>
> SVRMGR> create table test
> 2> (x t_test2
> 3> );
> Statement processed.
> SVRMGR>
> SVRMGR> select column_name,data_type
> 2> from user_tab_columns
> 3> where table_name='TEST';
> COLUMN_NAME DATA_TYPE
> ------------------------------ ------------------------------
> X T_TEST2
> X T_TEST1
> 2 rows selected.
> SVRMGR>
> SVRMGR> spool off
>
> Column x has two different datatypes. Is this correct?
>
> Andrew Protasov
>
>
>
Received on Thu Nov 05 1998 - 07:54:51 CST
![]() |
![]() |