【发布时间】:2019-07-22 15:18:28
【问题描述】:
我使用默认角色 scott(我在 Oracle 11gs 安装期间启用)在 sql developer 上创建了这些表
但是,当我使用 sqlplus 从 scott 登录时,表格根本不显示。
我什至尝试使用 connect /as sysdba 登录,即使我通过 sysdba 角色连接,表仍然不显示。
我在一周前创建了这些表,并且在创建这些表时最初没有键入关键字 commit,但是如果这是问题所在,为什么每次我登录时它们仍会显示在 SQL 开发人员上。另外我认为 SQL 开发人员自动当我关闭它时提交更改。
是的,这些不是空表,它们分别有数据。
我的数据库在我的本地机器上,我使用的是 Oracle 11g,所以我不明白问题出在哪里。任何帮助将不胜感激。
【问题讨论】:
-
命令提交仅适用于 DML(插入、更新、删除、合并...)。在 DDL 之后,您不需要提交之类的东西,它是持久的(在您的情况下)。也许您需要使用前缀模式 scott。访问表格
-
是的,但是我创建了一个表,因为我插入了全新的数据,所以我不会提交。表格不是空的,它们里面有信息
-
SCOTT是用户(模式),而不是角色。您确定您实际上是从两个客户端连接到同一个数据库吗?检查连接设置,如果您使用的是 TNS 别名(特别是来自 SQL*Plus),请从tnsnames.ora文件中获取匹配的连接详细信息。 -
当您创建表时,您是否使用这 4 行创建它,然后偶然使用插入语句添加其他行?如果是这样,我猜后面的插入语句根本没有提交,因此从未保存到表中。要进行测试,您可以尝试再次插入行(不管是来自 SQL Developer 还是 SQL Plus),然后提交插入。提交后,您应该能够从 SQL Developer 和 SQL Plus 查询这些行。
-
@cdb_dba
tabis a built-in view,尽管建议不要使用它。 OP 只在数据字典中查找,而不是在他们创建的表中查找,因此它们中是否有任何行都没有关系。如果连接为SCOTT,最好查询user_tables;或者如果检查dba_tables为SYS,则检查所有者。
标签: sql oracle oracle11g oracle-sqldeveloper sqlplus