如何从 Teradata QryLog 获取 INSERT、UPDATE 和 Delete 语句的表名称

问题描述 投票:0回答:1

我的任务是提取 Teradata 中 INSERT、UPDATE 和 DELETE 操作涉及的目标表名

举个例子

如果 dbc.Qrylog 中的 SQL 如下 - 我只需要 TD.Employee;

插入 TD.Employee 从 TD.Employee_NEW 选择 *

有没有办法在 Teradata 中获取此信息

我试过了

从 DBC.DBQLXMLTbl 中选择 *,其中 XmltextInfo 如“%LockOperation%”

但并不是所有的DML语句都有LockOperation在里面

xml-parsing teradata
1个回答
0
投票

你可以试试这个方法:

select  A.LOGDATE, A.PROCID, A.QUERYID, 
  STATEMeNTTYPE,
  OBJECTDATABASENAME, OBJECTTABLENAME 
FROM PDCRDATA.DBQLOGTBL_HST A , PDCRDATA.DBQLOBJTBL_HST B 
WHERE A.LOGDATE = B.LOGDATE 
  AND A.PROCID = B.PROCID
  AND A.QUERYID = B.QUERYID 
  AND STATEMENTTYPE IN ( 'INSERT','UPDATE','DELETE')
  AND OBJECTTYPE = 'TAB'
;
© www.soinside.com 2019 - 2024. All rights reserved.