【问题标题】:My tables aren't showing even though i'm using the same role即使我使用相同的角色,我的表格也没有显示
【发布时间】: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 tab is a built-in view,尽管建议不要使用它。 OP 只在数据字典中查找,而不是在他们创建的表中查找,因此它们中是否有任何行都没有关系。如果连接为SCOTT,最好查询user_tables;或者如果检查dba_tables 为SYS,则检查所有者。

标签: sql oracle oracle11g oracle-sqldeveloper sqlplus


【解决方案1】:

所以我的问题是我连接到 sql developer 上的 SID orcl 我的 sql plus 连接到我在 11gs 安装期间命名的 SID

在 sqlplus= 上运行这个=

var OHM varchar2(100);
> EXEC dbms_system.get_env('ORACLE_HOME', :OHM);
> PRINT OHM // ---> ORACLE_HOME

找到我的 oracle 11gs 主目录

有一个名为“tnsnames.ora”的文件位于 [Your_ORACLE_HOME]/Network/Admin。 使用记事本打开它(任何文本编辑器都应该工作)

在 tnsnames.ora 文件中找到我在 sql developer 中输入的服务名称,并更改了 .ora 文件中提到的端口

现在就像一个魅力。

这是一个有用的帖子的链接,它帮助我得出了结论

https://dba.stackexchange.com/questions/121251/sqldeveloper-ora-12505-tns-listener-does-not-currently-know-of-sid-given-in-co

感谢Do Long Bien

【讨论】:

    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多