我刚刚安装了OracleDB10,因为我们在学校使用它。我通过以下方式连接到数据库:
hr/password as sysdba;
然后,我执行了以下代码,以显示我们曾在课堂上使用过的一些默认表(工作表,员工表,部门表和类似表):
select table_name from user_tables;
结果,我得到了701个表,其中许多都有美元符号,我仔细地浏览了结果,发现我需要的表在结果内,例如表“ COUNTRIES”
但是,如果我尝试做
desc countries;
或者
SELECT * FROM COUNTRIES;
它回显“不正确的表”错误。
知道是什么原因造成的,以及如何解决?
您看到的大多数表都是系统表,可用于查询有关Oracle的元信息。其他表可能包含样本数据。
错误消息表明表要么在不同的架构中,要么您无权访问它们。
如果我没记错的话,COUNTRIES是HR模式中的样本表。因此,如果您与HR用户建立联系,则应该能够访问它们。尝试以普通用户身份连接(不以sysdba身份连接):
hr/password
或将schmea名称放在表名称的前面:
select * from HR.COUNTRIES;
顺便说一句:模式直接链接到用户。因此,用户和模式或多或少是相同的,并且通常也称为所有者,例如在DBA_TABLES中。
如果权限不足,则需要授予它(使用SYSDBA用户):
GRANT SELECT, INSERT, UPDATE, DELETE ON HR.COUNTRIES TO ABDEL;
(ABDEL或您的用户名。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句