如何列出数据库链接(Oracle)中存在的所有表?

19

基本上我有一个名为mylink.domain的数据库链接(Oracle),在这个链接中,我们可以访问基础信息,例如成员的名称和其他一般信息。

我想列出这个链接中所有表的名称,但我不知道如何做到这一点。

提前致谢。

3个回答

32

您可以通过数据库链接访问all_tables视图:

select owner, table_name
from all_tables@dblink
order by owner, table_name;

我之前尝试过这段代码,但是它没有显示关联的表格。数据库链接:mylink.domain 链接中的一个表格:foundation.members@mylink如果我运行 "select * from foundation.member@mylink",所有行都会被检索出来。但是当我运行你提供的 select 时,这个表格并没有出现。 - Igor Abreu
1
@IgorAbreu,你在正确的模式中创建了数据库链接吗?请检查创建数据库链接时提供的用户名和服务名。 - anudeepks
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - user330315
@a_horse_with_no_name,我有一个链接,该链接指向我的生产版本,在我的生产版本中有一个名为foundation的用户,如果我在Sql Developer中检查,可以看到所有的表格。 我不明白为什么我不能使用select查看。 - Igor Abreu

0
选择 ALL_TABLES 字典视图的内容将列出您的用户可以访问的所有表。通常,无法获取您没有权限的表的列表 - 它们只是不会显示出来。如果您的用户具有 SELECT ANY DICTIONARY 特权,则可以选择 DBA_TABLES 的内容,它将始终列出数据库中存在的所有表。

0

选择 all_tables@dblinkname 中的表名;

这将显示您链接用户可以访问的所有表。

我得到答案的地方


这是一个现有答案的简化摘录。 - APC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接