Db2 RPG嵌入式SQL集选项commit=*CS

Db2 RPG嵌入式SQL集选项commit=*CS,db2,db2-400,rpgle,Db2,Db2 400,Rpgle,在使用嵌入式SQL的自由格式RPG中,我为我的SQL选项指定了以下选项: exec sql set option commit=*CS, datfmt=*iso, closqlcsr=*endmod; 如果我指定了commit=*CS,我是否需要在我的SQL select语句中使用CS指定,还是因为我在set选项中指定了它而假定 如果我指定commit=*none,然后在我的SQL select语句中指定WITH CS,那么WITH CS会生效吗?因为在我的set选项commit中,我说

在使用嵌入式SQL的自由格式RPG中,我为我的SQL选项指定了以下选项:

exec sql
 set option commit=*CS,
 datfmt=*iso,
 closqlcsr=*endmod;
如果我指定了
commit=*CS
,我是否需要在我的SQL select语句中使用CS指定
,还是因为我在set选项中指定了它而假定


如果我指定
commit=*none
,然后在我的SQL select语句中指定
WITH CS
,那么
WITH CS
会生效吗?因为在我的set选项commit中,我说了
*none

set option
语句为模块中的所有语句设置默认值

该默认值可以由单个语句上的
WITH
子句覆盖

所以

exec sql
 set option commit=*CS,
 datfmt=*iso,
 closqlcsr=*endmod;
没有
WITH
子句的语句将使用承诺控制和游标稳定性的隔离级别。带有NC的
语句将不使用承诺控制,带有RS的
语句将使用承诺控制和隔离级别读取稳定性


注意:
closqlcsr=*endmod
会影响性能。它通常被用作设计不良和/或过时的应用程序的创可贴。

<代码> LoCQLCSR= *EnMOD可能会或可能不会损害性能。最好指定它,但我们还不能从OP中分辨出来。通常最好不要指定它。