【问题标题】:Modifies SQL DATA procedure called from inside a READS SQL DATA procedure修改从 READS SQL DATA 过程内部调用的 SQL DATA 过程
【发布时间】:2012-06-05 19:50:27
【问题描述】:

我正在尝试定义一个通用的 SQL 错误例程,该例程本质上会将所有信息从 GET DIAGNOSTICS 转储到一个文件中。

我创建了一个获取所有这些信息的过程,当从另一个MODIFIES SQL 的过程中调用它时效果很好。我在获取数据的过程中也需要它。这些过程是用READS SQL DATA 定义的,当它调用错误例程时,它会失败,因为它继承了调用者的READ

我怎样才能避免这个问题。我不想将我所有的READS SQL DATA 更改为MODIFIES SQL DATA,因为它可以打开数据进行修改,我们不希望这样。

【问题讨论】:

  • "...它可以打开数据进行修改,我们不希望这样。"这就是 MODIFIES SQL DATA 被限制在 READS SQL DATA 中的原因。允许它会破坏保证调用外部 proc 不会导致未知更改的 SQL“合同”。

标签: sql inheritance stored-procedures db2-400


【解决方案1】:

为什么不使用 RPG 或 COBOL 中的本机 I/O 将诊断数据写入文件?

【讨论】:

  • 这就是我们最终所做的。宁愿使用所有 SQL,但可惜需要原生 IO 来执行任务。
  • 也许您可以通过编写一个可以在内部执行 SQL 的 RPGOA 处理程序来执行本机 IO。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 2011-06-22
相关资源
最近更新 更多