我之前使用的是SQL Developer 1.1。最近我升级到了SQL Developer 3。在升级后,我发现我的某些连接不显示它们的表格。我可以对这些表进行select查询,并且数据会被显示出来。其他对象比如视图等都可以看到。我仍然可以使用旧版本,并且能够看到同样模式下所有表格的列表。但有些连接显示正常。
我无法找到相关信息。我尝试去掉筛选器,但没有效果。
有人遇到过这个问题吗?请帮帮忙。
我之前使用的是SQL Developer 1.1。最近我升级到了SQL Developer 3。在升级后,我发现我的某些连接不显示它们的表格。我可以对这些表进行select查询,并且数据会被显示出来。其他对象比如视图等都可以看到。我仍然可以使用旧版本,并且能够看到同样模式下所有表格的列表。但有些连接显示正常。
我无法找到相关信息。我尝试去掉筛选器,但没有效果。
有人遇到过这个问题吗?请帮帮忙。
你寻找的表格可能在不同的模式中。有几种选择。你可以在连接下的树形结构中点击“其他用户”,或右键单击连接并选择“模式浏览器”,然后选择所需的模式。
从中选择“其他用户”,然后选择您的用户(schema),在此下面您将能够看到您的表和视图。
我已经尝试了Michael Munsey建议的两个选项,都对我有效。
我想提供另一个查看筛选表的选项。鼠标右键单击您的表树节点,选择“应用筛选器”并选中“包括同义词”复选框,然后点击“确定”。就这样,您应该能够在那里查看表格。对我有效。
参考来源:http://www.thatjeffsmith.com/archive/2013/03/why-cant-i-see-my-tables-in-oracle-sql-developer/
我在sqlDeveloper64-3.0.4.34和sqlDeveloper64-3.1.07.42中遇到了同样的问题。
根据https://forums.oracle.com/forums/thread.jspa?threadID=2202388的说法,JDBC驱动程序存在一个关于“Out Of Band Breaks”的bug - 基本上是一个低级别的TCP问题。
解决方法是使用JVM属性-Doracle.net.disableOob=true启动sql developer。我尝试了这个解决方案对3.0和3.1都有效。
因此,我在这里引用来自论坛的解决方案:
Select * from admin.mytable
这个意思是“admin”是拥有它的用户,所以您需要进入“其他用户 > Admin”,展开“表格”,然后就可以找到它了。
select * [tablename]
查看表格。 - Philip Regoselect * [tablename]
(无论如何你都忘了 from
)访问表格,除非是你登录的用户拥有它。 - vapcguyselect * from (
SELECT o.OBJECT_NAME, o.OBJECT_ID ,'' short_name, decode(bitand(t.property, 32), 32, 'YES', 'NO') partitioned,
decode(bitand(t.property, 64), 64, 'IOT',
decode(bitand(t.property, 512), 512, 'IOT_OVERFLOW',
decode(bitand(t.flags, 536870912), 536870912, 'IOT_MAPPING', null))) iot_type,
o.OWNER OBJECT_OWNER, o.CREATED, o.LAST_DDL_TIME, O.GENERATED, O.TEMPORARY, case when xt.obj# is null then 'N' else 'Y' end EXTERNAL
FROM SYS.Dba_OBJECTS O ,sys.tab$ t, sys.external_tab$ xt
WHERE O.OWNER = :SCHEMA
and o.object_id = t.obj#(+)
and o.object_id = xt.obj#(+)
AND O.OBJECT_TYPE = 'TABLE'
union all
SELECT OBJECT_NAME, OBJECT_ID , syn.SYNONYM_NAME short_NAME, decode(bitand(t.property, 32), 32, 'YES', 'NO') partitioned,
decode(bitand(t.property, 64), 64, 'IOT',
decode(bitand(t.property, 512), 512, 'IOT_OVERFLOW',
decode(bitand(t.flags, 536870912), 536870912, 'IOT_MAPPING', null))) iot_type,
SYN.TABLE_OWNER OBJECT_OWNER, o.CREATED, o.LAST_DDL_TIME, O.GENERATED, O.TEMPORARY, case when xt.obj# is null then 'N' else 'Y' end EXTERNAL
FROM SYS.Dba_OBJECTS O, sys.user_synonyms syn,sys.tab$ t, sys.external_tab$ xt
WHERE syn.table_owner = o.owner
and syn.TABLE_NAME = o.object_NAME
and o.object_id = t.obj#
and o.object_id = xt.obj#(+)
and o.object_type = 'TABLE'
and :INCLUDE_SYNS = 1
)
where /**/object_name not in (select object_name from recyclebin)
AND not object_name like 'BIN$%'
SCHEMA
和INCLUDE_SYNS
设置值。将SCHEMA
设置为您的用户名,并将INCLUDE_SYNS
设置为0。SQL Developer 1.1可能使用了一个更简单的查询,适用于您的访问权限。创建连接所使用的身份确定了您在Oracle中可以看到哪些表。您在设置新版本连接时是否提供了不同的凭据?
grant select on sys.external_tab$ to [myUser]; 对我有用。谢谢Codo