gpt4 book ai didi

oracle - 如何找到 Oracle View 的基础列和表名称?

转载 作者:行者123 更新时间:2023-12-02 11:47:55 25 4
gpt4 key购买 nike

这听起来应该很简单,但事实并非如此!我找不到任何 Oracle(元数据) View 可以提供 Oracle View 列的基础列和表名称。我发现这样做的唯一方法是解析 View 源 SQL(这与精确的科学相去甚远)。

为了解释我想要什么,请考虑我在 SCOTT 模式中创建的以下示例 View :

CREATE OR REPLACE VIEW EMP_DEP
(
EMPLOYEE_NAME,
DEPARTMENT_NAME
)
AS
SELECT
ENAME,
DNAME
FROM
emp a,
dept b
WHERE
a.deptno= b.deptno
/

现在给定 View 和列名称 EMP_DEP.DEPARTMENT_NAME,我想获取 View 使用的基础表和列名称 DEPT.DNAME。有谁知道不涉及解析 View SQL 的情况下获取此信息的方法吗?

最佳答案

没有办法,因为每个 View 列的定义是一个表达式,而(通常)不仅仅是一个表列。例如,您的 View 的 SQL 可能是:

SELECT 
UPPER(ENAME) || 'xxx',
myfunction(DNAME)
FROM
emp a,
dept b
WHERE
a.deptno= b.deptno

或者也许

SELECT ename || 'xxx', dname
FROM (
SELECT
UPPER(ENAME) AS ename,
myfunction(DNAME) AS dname
FROM
emp a,
dept b
WHERE
a.deptno= b.deptno
)

您希望在此示例中看到“基础列”什么?

关于oracle - 如何找到 Oracle View 的基础列和表名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com