Parsing Teradata:获取大变量文本字段的特定部分

Parsing Teradata:获取大变量文本字段的特定部分,parsing,teradata,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)

我的第一个帖子:(善良点) 问题:我需要从包含完整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
但是我没有得到好的结果-
非常感谢您的帮助

您可以应用正则表达式:

RegExp_Substr_gpl(SQL_FIELD, '(v_mktg_dm\.)(.*?)( AS lead_sql)',1,1,'i',2)
这将查找“v_mktg_dm.”和“AS lead_sql”之间的字符串


RegExp\u Substr\u gpl
RegExp\u Substr
的一个未经记录的变体,它简化了忽略部分匹配的语法

这些锚是什么?“来自v_mktg_dm.”在前端,在itView name之后的“as lead\u sql”将位于这两个选项之间,如我还有一个问题,该字段中的SQL存在一些差异。有没有办法确定第二个“锚”是回车?我尝试将字符(13)放置在字段中,但无法识别它。您可以使用通配符
\s
来表示任何类型的空白:
RegExp\u Substr\u gpl(SQL\u字段),(v_mktg\u dm\)(.*)(\sAS lead\u SQL);