在使用嵌入式SQL的自由格式RPG中,我为我的SQL选项指定了这个:
exec sql
set option commit=*CS,
datfmt=*iso,
closqlcsr=*endmod;
如果我指定commit=*CS
,我是否需要在我的SQL select语句中指定WITH CS
,或者是因为我在set选项中指定了它?
如果我指定commit=*none
,然后在我的SQL select语句中指定WITH CS
,WITH CS
将生效,因为在我的设置选项提交中我说*none
?
答案 0 :(得分:1)
set option
语句设置模块中所有语句的默认值。
该默认值可以被单个语句中的WITH
子句覆盖。
所以用
exec sql
set option commit=*CS,
datfmt=*iso,
closqlcsr=*endmod;
没有WITH
子句的语句将使用提交控制和游标稳定性的隔离级别。 WITH NC
的语句不会使用承诺控制,而WITH RS
的语句将使用承诺控制和隔离级别读稳定性。
注意:closqlcsr=*endmod
会影响性能。它通常用作设计不良和/或过时应用的创可贴。