【发布时间】: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