我的任务是提取 Teradata 中 INSERT、UPDATE 和 DELETE 操作涉及的目标表名
举个例子
如果 dbc.Qrylog 中的 SQL 如下 - 我只需要 TD.Employee;
插入 TD.Employee 从 TD.Employee_NEW 选择 *
有没有办法在 Teradata 中获取此信息
我试过了
从 DBC.DBQLXMLTbl 中选择 *,其中 XmltextInfo 如“%LockOperation%”
但并不是所有的DML语句都有LockOperation在里面
你可以试试这个方法:
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'
;