我们为所有 SQL
存储过程和函数实现了一个全局错误记录器。当过程/函数遇到 SQLEXCEPTION
或 SQLWARNING
时,我们调用全局错误记录器并执行 GET STACKED DIAGNOSTICS
语句。我们需要的部分数据是失败的过程名称。我没有在 GET DIAGNOSTICS
中看到可用的返回值(ROUTINE_NAME
和 ROUTINE_SCHEMA
有条件地返回,我总是需要它)。
我们目前正在使用 QWVRCSTK API
,但我假设 SQL 有提供此数据的方法。有人知道我该怎么做吗?
最佳答案
Retrieve Job Information (QUSRJOBI) API可以返回作业中运行当前(最新)SQL 语句的对象的限定名称。使用格式 JOBI0900
访问作业的 SQL 信息。
您想要创建一个外部 存储过程来调用 API。 (如果您尝试将其作为 SQL 存储过程来执行,问题将是 SP 本身中的语句将是当前语句;并且您希望当前 SQL 位于调用过程中。)
调用此 SP 时,“当前”SQL 应该是调用过程中后面的 CALL 语句。 (我希望这是有道理的。)
关于sql - 如何找到调用存储过程/函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085961/