这两天项目中用到OTL库,在产品部署时产生了一个问题“invalid LOB locator specified ”,
问题不是时时产生的,而是在指定记录中会产生这个异常,然后被OTL捕捉,
产生异常的位置都是在 otl_lob_stream >> otl_long_string 语句,
经排查不是set_max_long_size的问题。
后来发现原来与SQL SELECT语句中字段的排列顺序有关,LOB类型必须要排在所有字段的最后。
详见:http://otl.sourceforge.net/otl3_lob_stream.htm
The ODBC as well as DB2 CLI standards recommend that LOBs should be put at the end of INSERT/SELECT statements. For example:
INSERT INTO my_tab (f1,f2,f3_lob,f4_lob)...
SELECT f1,f2,f3_lob,f4_lob FROM my_tab...
本文探讨了在使用OTL库时遇到的invalidLOBlocatorspecified异常问题,通过分析发现该问题与SQLSELECT语句中字段排列顺序有关。详细解释了为何LOB类型必须排在所有字段的最后,并提供了实例代码进行说明。

被折叠的 条评论
为什么被折叠?



