我想使用 SQLSTATE 和变量文本在 IBM i 上的 RPG 中调用过程。
getSQLMessage(SQLSTT: text)
变量文本应该是过程调用之前最后执行的sql语句。 有没有机会像这样得到它:
EXEC SQL GET DIAGNOSTICS CONDITION 1 :text = last executed sql statement
或者也许有人知道我的问题的另一种解决方案?
非常感谢!
最佳答案
不能使用GET DIAGNOSTICS,但可以先获取JobLog
DSPJOBLOG OUTPUT(*OUTFILE) OUTFILE(QTEMP/ERR_LOG)
然后获取最后一个 SQL 错误:
Select Qmhmf,
Qmhmid,
Qmhmdt
From Qtemp.Err_Log
Where Qmhsev >= 20
And Substr(Qmhmid, 1, 3) In ('CPA' , 'CPD' , 'CPF' , 'SQL')
Order By Rrn(Err_log) Desc
Fetch First 1 Rows Only
关于sql - DB2 SQL 如何使用 GET DIAGNOSTICS 获取最后执行的 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56889866/