从另一个 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中表A中有若干完全重复的字段,怎样查询出不是重复的信息