Teradata:获取大型可变文本字段的特定部分

时间:2018-10-10 21:47:51

标签: parsing teradata

我的第一篇文章:(友善) 问题:我需要从包含完整SQL语句的文本字段中提取视图名称,以便可以将该字段链接到其他数据源。目标视图的两侧始终存在两个文本字符串。我希望将它们与子字符串一起用作标识“锚点”,以便从它们之间引入“视图名称”文本。 示例:

from v_mktg_dm.**VIEWNAME** as lead_sql

(我要提取的是大写/粗体) 我尝试使用

SELECT 
SUBSTR(SQL_FIELD,INSTR(SQL_FIELD,'FROM V_MKTG_TRM_DM.',19),20) AS PARSED_FIELD
FROM DATABASE.SQL_STORAGE_DATA

但是效果不好- 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以应用正则表达式:

RegExp_Substr_gpl(SQL_FIELD, '(v_mktg_dm\.)(.*?)( AS lead_sql)',1,1,'i',2)

这将查找“ v_mktg_dm”之间的字符串。和'AS lead_sql'。

RegExp_Substr_gplRegExp_Substr的未记录变体,它简化了忽略匹配部分的语法