【发布时间】:2017-03-20 09:15:01
【问题描述】:
这是我的第一篇文章,所以请原谅我在写这篇文章时可能犯的任何错误。
我有一个充满表视图的 oracle 数据库模式。我想使用“all_views”表中的“TEXT_VC”列来获取源表名列表。
这是我到目前为止的声明:
SELECT view_name, text_vc, REGEXP_SUBSTR(TEXT_VC,'from (.+?) ') AS source_table
FROM all_views
WHERE owner = 'OWNER';
我仍然有这个正则表达式的视图问题。 首先,我得到“来自table_name”的结果。我不想在我的结果集中得到“来自”。
其次,TEXT_VC 列基本显示了视图后面的 SQL。所以在某些情况下我没有得到任何结果,因为有换行符。我尝试使用 \n 和 \r 但我无法生成我想要的结果。
谁能帮帮我?
【问题讨论】:
-
我不相信 rexec 一般可以提供帮助。考虑
select from( select from... )视图。你可能需要一个解析器见stackoverflow.com/questions/5735791/parser-for-oracle-sql