【发布时间】:2021-02-05 09:27:23
【问题描述】:
我正在执行一项活动,以根据特定模式 (@xyz.de) 识别电子邮件地址。我最初尝试检查 DBA_TAB_COLS [数据字典] 视图,但这只是找到 email 列名,我需要手动检查表的大列表。而不是这样做,有没有更有效的方法来获取模式值@xyz.de?
数据库 - oracle 11g
使用的查询
SET SERVEROUTPUT ON 100000
DECLARE
lv_count number(10):=0;
l_str varchar2 (1000);
lv_col_name varchar2(255) :='EMAIL';
BEGIN
FOR V1 IN
(select distinct table_name
from dba_tab_columns
where column_name = lv_col_name
order by table_name)
LOOP
dbms_output.put_line(lv_col_name||' '||v1.table_name);
END LOOP;
END;
请注意
- 我不完全知道表名或列名。
- 值
@xyz.de可以在任何模式、任何表和任何列中。必须以有效的方式确定这一点。
有什么建议吗?
我已经使用上面的块查询来获取电子邮件列以及表名,但是我如何通过使用动态 sql 搜索某个值 @xyz.de 来实现?
【问题讨论】:
-
相信你在找dynamic SQL
-
@Abra - 是的,就像动态 ssql
标签: oracle plsql regexp-like