sql - DB2 SQL 如何使用 GET DIAGNOSTICS 获取最后执行的 SQL 语句?

标签 sql db2 ibm-midrange db2-400 rpgle

我想使用 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/

相关文章:

scala - 请求者无法建立连接。 jetty 、电梯/Scala、iSeries DB2/400

mysql - SQL:获取嵌套集中节点的直接下属

sql - 从月份名称和年份在sql中获取该月份的日期范围

java - 在 DBUnit 中导出/导入数据类型?

postgresql - 将 DB2 触发器重写为 PostgreSQL 触发器

database - 我们可以将自定义查询提示分配给 JPA NamedQueries

Java AS400 "Internal driver error"与控制台应用程序

php - SQL - 在特定时间(或 ID)后选择新值

mysql - 当我选择一个元时,如何获取记录中的所有元

docker - 在 Mac 上从 Docker 使用 Db2 Developer-C Edition 时出现问题