Oracle显示701个奇怪的表而不是默认表

时间:2014-05-10 13:26:14

标签: sql oracle

我刚刚安装了OracleDB10,因为我们在学校使用它。 我通过以下方式连接到数据库:

hr/password as sysdba;

然后我执行了以下代码,以显示我们在课堂上使用的几个默认表(作业,员工,部门和类似的表):

select table_name from user_tables;

结果我得到701桌子,其中很多都有美元符号,我仔细查看结果,发现我需要的桌子在结果中,例如表'COUNTRIES'

但是,如果我尝试

desc countries; 

或者

SELECT * FROM COUNTRIES; 

它回应了“不存在的表”错误。

知道造成这种情况的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您看到的大多数表都是系统表,可用于查询有关Oracle的元信息。其他表可能包含样本数据。

错误消息表明这些表位于不同的架构中,或者您无权访问它们。

如果我没弄错的话,COUNTRIES是HR模式中的示例表。因此,如果您与HR用户连接,您应该能够访问它们。尝试以普通用户身份连接(不使用 as sysdba ):

hr/password

或者将schmea名称放在表名前面:

select * from HR.COUNTRIES;

BTW:架构直接链接到用户。因此,用户和架构或多或少相同,并且通常也称为所有者,例如,在DBA_TABLES。

如果您没有足够的权限,则需要授予它(使用SYSDBA用户):

GRANT SELECT, INSERT, UPDATE, DELETE ON HR.COUNTRIES TO ABDEL;

(ABDEL或您的用户名。)