sam*_*mmy 29 sql oracle oracle-sqldeveloper
我使用的是SQL Developer 1.1.我最近升级到SQL Developer 3.升级后,我注意到我的一些连接没有显示他们的表.我可以对表格进行选择,并显示数据.我可以看到其他对象,如视图等.我仍然可以使用我的旧版本,并且可以看到所有表格都适用于相同的模式.还有其他连接显示正常.
似乎无法找到关于此的信息.我尝试删除过滤器,但它没有工作.
有没有人碰到这个?请帮忙.
Tha*_*ayz 23
我尝试了Michael Munsey建议的两个选项,并为我工作.
我想提供另一个选项来查看过滤表.鼠标右键单击表树节点并选择"应用过滤器"并选中"包含同义词"复选框,然后单击"确定".就是这样,你应该能够在那里查看表格.这个对我有用.
礼貌:http://www.thatjeffsmith.com/archive/2013/03/why-cant-i-see-my-tables-in-oracle-sql-developer/
小智 16
从中选择"其他用户"并选择您的用户(架构),在该用户(架构)下您将能够看到您的表和视图.

小智 8
我在sqlDeveloper64-3.0.4.34和sqlDeveloper64-3.1.07.42中遇到了同样的问题.
根据https://forums.oracle.com/forums/thread.jspa?threadID=2202388,似乎JDBC驱动程序中存在一个与"Out of Band Breaks"有关的错误 - 基本上是一个低级TCP问题.
解决方法是使用JVM属性启动sql developer -Doracle.net.disableOob = true 我尝试了3.0和3.1的这个解决方案,它的工作原理.
所以我在这里引用论坛的解决方案:
我相信我已经确定了一些用户而不是其他用户导致这些问题的原因.看来JDBC驱动程序中存在一个与"Out of Band Breaks"有关的错误 - 基本上是一个低级TCP问题.这个错误似乎以多种方式表现出来.到目前为止,我已经确定使用共享连接(特别是Vista或Windows 7)和通过VPN(任何操作系统)连接作为常见方案.在所有情况下,没有DBA访问权限也是一个问题.
首先,让我解释为什么DBA访问会产生影响.当我们第一次访问任何特定的数据字典视图时,我们首先尝试查看是否可以访问视图的DBA版本(或者某些情况是tab $等).这些视图比普通的USER版本更有效,因此我们希望尽可能使用它们.我们每个会话只检查一次DBA视图(并且仅在需要时),但我们最终可以检查对一堆视图的访问.
当我们做这个检查时,OOB错误似乎已经停止了.我们应该从数据库中获得一个很好的,简单的响应.但是,在发生错误的情况下,此低级别网络错误会导致发生错误,从而导致连接进入不可用状态.然后,这会导致所有连接已关闭错误.似乎有一种解决方法 - JDBC驱动程序支持禁用OOB.但是,这样做会影响取消执行语句的能力,所以我不建议一般使用解决方法,但它应解决用户遇到此特定问题的情况.
要启用变通方法,需要设置Java系统属性- oracle.net.disableOob = true.您可以通过两种方式设置此项.第一种是在命令行中将其传递为sqldeveloper -J-Doracle.net.disableOob = true.当然,只有在通常从命令行运行时才有效.您还可以在sqldeveloper.conf文件中添加一行(位于+ sqldeveloper\bin +下).那条线路将是AddVMOption -Doracle.net.disableOob = true
我们正在寻找其他解决方案,但目前解决方法应该使您能够使用SQL Developer.
- 约翰
SQL Developer Team
关于进入“其他用户”的答案很接近,但还不够明确,所以我觉得有必要在下面添加这个答案。
在 Oracle 中,它只会向您显示属于您登录帐户所拥有的架构(MS SQL Server 中的数据库)的表。如果该帐户不拥有/没有创建任何内容,即使您对数据库中的所有内容都拥有权限,您也将看不到任何内容!(这与 MS SQL Server Management Studio 相反,在那里您可以看到您拥有的任何权利,并且所有者始终是“dbo”,禁止某些管理员进入并出于某些不可预见的原因更改它。)
所有者将是唯一可以在树中“表格”下看到这些表格的人。如果您没有看到它们,因为您不是它们的所有者,则必须进入“其他用户”并展开每个用户,直到找到谁创建/拥有该架构(如果您已经不知道)。无论您的帐户是否具有表格的权限都没有关系,您仍然必须在“其他用户”下找到拥有它的用户才能在“表格”下查看它!
可以帮助您的一件事是:当您编写查询时,您实际上在命名法中指定了该所有者是谁,例如。
Select * from admin.mytable
Run Code Online (Sandbox Code Playgroud)
表示“admin”是拥有它的用户,因此您进入“Other Users > Admin”并展开“Tables”,它就在那里。