从另一个 Oracle 用户查询列名 [重复]

Posted

技术标签:

【中文标题】从另一个 Oracle 用户查询列名 [重复]【英文标题】:Querying the Column Name from another Oracle User [duplicate] 【发布时间】:2013-05-02 09:13:11 【问题描述】:

好的,这就是我的情况。我需要从另一个 Oracle 数据库用户那里查询表的列名。它与我的用户名具有相同的架构和相同的数据库连接。

这是我的查询:

Select COLUMN_NAME 
from user_tab_columns 
where table_name='CY_3TRAVELTRAX' AND User = 'PUBLISH_PNL_AFPI_2013';

但我总是得到一个零结果,而实际上用户有很多表和列。有什么帮助吗?提前致谢。

【问题讨论】:

user_* 视图只包含当前用户的数据。 建议大家记得先搜索再提问。当您按原样键入标题时,Google 上的第一次点击就是上述问题。 哦,谢谢...它有很大帮助! :) 【参考方案1】:

对于大多数user_ 数据字典视图,也有all_(和dba_)视图。

文档摘录(http://docs.oracle.com/cd/E11882_01/server.112/e17110/statviews_1001.htm#i1572007)描述得最好:

很多数据字典表都有对应的三个视图:

ALL_ 视图显示当前可访问的所有信息 用户,包括来自当前用户架构的信息以及 来自其他模式中对象的信息,如果当前用户有 通过授予权限或角色来访问这些对象。

DBA_ 视图在整个视图中显示所有相关信息 数据库。 DBA_ 视图仅供管理员使用。他们可以 只能由具有 SELECT ANY TABLE 权限的用户访问。这 权限在系统初始时分配给 DBA 角色 已安装。

USER_ 视图显示来自 当前用户。查询这些视图不需要特殊权限。

所以你应该使用:

Select COLUMN_NAME
from all_tab_columns
where table_name='CY_3TRAVELTRAX'
AND owner = 'PUBLISH_PNL_AFPI_2013';

注意:要使用的列称为 OWNER 而不是 USER!后者是一个返回当前用户的函数(每个 DBA 在他们的职业生涯中至少被此咬过一次)。

【讨论】:

以上是关于从另一个 Oracle 用户查询列名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle之查询详解

oracle中表A中有若干完全重复的字段,怎样查询出不是重复的信息

oracle 创建视图 提示列名重复,我知道应该是重名的列,重命名一下 怎么命名啊?

oracle入门之对表数据查询

oracle中,查询结果去除重复列,插入到新表中

与oracle 有关的那点事