DB2 SQL Как получить последний выполненный SQL-оператор с помощью GET DIAGNOSTICS? - PullRequest
1 голос
/ 04 июля 2019

Я хочу вызвать процедуру в RPG в IBM i с SQLSTATE и с переменной text.

getSQLMessage(SQLSTT: text)

Переменная text должна быть последним выполненным оператором sql перед вызовом процедуры.Есть ли возможность получить это так:

EXEC SQL GET DIAGNOSTICS CONDITION 1 :text = last executed sql statement

Или, может быть, кто-то знает другое решение для моей проблемы?

Большое спасибо!

1 Ответ

2 голосов
/ 10 июля 2019

Вы не можете использовать 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                                       
...