sql - 如何找到调用存储过程/函数

标签 sql db2 ibm-midrange

我们为所有 SQL 存储过程和函数实现了一个全局错误记录器。当过程/函数遇到 SQLEXCEPTIONSQLWARNING 时,我们调用全局错误记录器并执行 GET STACKED DIAGNOSTICS 语句。我们需要的部分数据是失败的过程名称。我没有在 GET DIAGNOSTICS 中看到可用的返回值(ROUTINE_NAMEROUTINE_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/

相关文章:

c - 如何防止 C read() 从缓存中读取

java - 作为监听器的无限循环的替代方案

java - 如何从在 dockerized Tomee 服务器上运行的应用程序成功连接到 Dockerized DB2 数据库/服务器 - 两个容器都使用 jdk10?

sql - 打开/关闭 DB2 中所有表的外键检查

sql - DB2 逗号分隔的组输出

php - 将 PHP 连接到 IBM i (AS/400)

mysql - 按天汇总 MySQL 表条目

mysql - 将新项目插入到已填充的表中

mysql 函数在两个表上,innodb

sql - 使用 T-SQL 从具有特定模式的段落中删除一个句子