关于Sql developer 中schema表名为CAT的奇怪问题

来源:互联网 发布:oa系统java源码 编辑:程序博客网 时间:2024/05/22 00:24

【问题描述】

Oracle版本:10.2.0.1.0

Sql developer版本:2.1.0.63

SID:orcl

在SID为orcl的数据库下面新建一个schema(我的命名为:SD_CUST_00_HOST),然后在这个schema下面新建一个名称为CAT的用户表。接着,插入一条数据。然后sql developer的connection视图里面一次展开schema和cat表,展开cat表之后在sql developer的后边视图里面显示的是cat表的详细信息,此时默认显示的是Columns TAB,切换到Data TAB,然后看不到任何东西。并且右下方的Data Edite_log视图里面显示  ORA-00904: "TABLE_TYPE": invalid identifier

 

【问题原因】

 

Cat is the synonym to user_catalog view which can be used to query a couple of object_types owned by user ( such things like tables,cluster etc.). You can see the definition of that view even if you doesn't have any such objects in your schema, but in that case you get no rows returned from this view.

 

这是在国外一个网站上面网友的留言,大概意思就是:cat是user_catalog 视图的别名(注:读者可以在sql editer属兔里面输入 DESC USER_CATALOG;查看此视图的结构,还可以用 select * from  user_catalog;查询视图里面的数据),user_catalog是用来查询此schema下面的user对象(例如表,SYNONYM,SEQUENCE,cluster等等)。即使你没有在这个schema下面定义任何oracle对象,你还是可以查看这个视图的定义,但是这样的话,当你查询这个视图的时候,你就得不到任何数据。

 

【解决办法】

貌似CAT被系统使用了,所以,不要在自己的schema里面定义这个对象。

 

附:

ORACLE系统表和数据字典视图

1.系统表

  ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM进行查询。几个重要的表或者视图如下:

  v$controlfile:控制文件的信息;

  v$datafile:数据文件的信息;

  v$log: 日志文件的信息;

  v$process:处理器的信息;

  v$session:会话信息;

  v$transaction:事务信息;

  v$resource:资源信息;

  v$sga:系统全局区的信息。

  上面的视图名中的‘v$’,只是视图名字中的字符。类似于上面的视图或表还有很多,位于:

  $ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。

  这些视图或表可以在SQLPLUS中用SELECT语句进行查询。

  2.数据字典视图

  表和列

  DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。

  DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。

  注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括表。

  完整性约束

  DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST显示有关约束的一般信息。

  DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS显示有关列的相关约束的一般信息。

  视图

  DBA_VIEWS、ALL_VIEWS和USER_VIEWS。

  注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括视图。

  序列

  DBA_SEQUENCES、ALL_SEQUENCES和USER_SEQUENCES。

  注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括序列。

  同义词

  DBA_SYNONYMS、ALL_SYNONYMS和USER_SYNONYMS。

  注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括同义词。

  索引

  DBA_INDEXS、ALL_INDEXS、USER_INDEXS、DBA_IND_COLUMNS、ALL_IND_COLUMNS和USER_IND_COLUMNS。

  用户

  DBA_USERS。

  角色

  DBA_ROLES。

  表空间定额

  DBA_TS_QUOTAS。

  配置表

  DBA_PROFILES。

  表空间

  DBA_TABLESPACES。

  数据文件

  DBA_DATA_FILES。

  段

  DBA_SEGMENTS、USER_SEGMENT。

  回滚段

  DBA_ROLLBACK_SEGS、V$ROLLNAME、V$ROLLSTAT。


注:如果你想找oracle的内置对象的话,用system或者sys以DBA的身份登入数据库,可以自己在table,view等等下面去查看

原创粉丝点击