|
komicakomica 发表于 2014-11-17 22:07 ![]()
看一下这里:http://www.itpub.net/thread-1897449-1-1.html
这个bug的话,直接丢google就好了,第一页就 ...
我想问个,我们现在通过前台java连接后台数据库,点一个提交操作时,后台发出一个sql:报了下面这样的错
SELECT t_field, s_expression
FROM hy_jgbs_fetch_tables_def
WHERE t_report_no = ?
AND begin_date <= ?
AND end_date > ?
[14-12-12 12:10:11:295 CST] 00000072 BaseAction E com.hyframe.application.action.DataAmendDetailAction queryFetchRuleSrcRptStatus The value of a host variable in the EXECUTE or OPEN statement is too large for its corresponding use.. SQLCODE=-302, SQLSTATE=22001, DRIVER=3.50.152
我们上午查了:
DB2_DEFERRED_PREPARE_SEMANTICS是另一个和DB2的Oracle兼容特性相关的环境变量,它用来控制诸如Java或者C#编写的应用程序兼容性。如下所示,将该变量值设为YES:
db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
这样做有什么好处呢?我们知道,从DB2 V9.7开始引入了隐式类型映射,它支持应用程序的动态语句中出现未定义类型参数标注符(Untyped Parameter Markers),但是这样的动态语句会在准备阶段报错。通过将db2set DB2_DEFERRED_PREPARE_SEMANTICS设置为YES,能避免在准备阶段求值,从而在执行阶段进行动态参数绑定,这为应用程序提供了动态绑定能力。
我这个问题会是因为没有设置DB2_DEFERRED_PREPARE_SEMANTICS设置为YES导致的吗?我觉得应该不是吧。。。这只是传一个sql进来查询,后台toad执行这个sql都好好的。。。
我想在问个,我现在的数据库版本是9.7.0,没有设置DB2_DEFERRED_PREPARE_SEMANTICS使用前台有以上问题。
另外一个环境数据库版本是9.7.8,也没有设置DB2_DEFERRED_PREPARE_SEMANTICS,前台使用没有以上问题。。。。
我现在就想先定位,我的9.7.0版本的和没有设置这个变量有关系么?如果我需要设置这个,在9.7.0上面使用会有副作用么。。。。 |
|