wm jdbc adapter error

I have a customized adapter service with a simple insert sql:
insert in to t(col1) values (substrb(?,1,100))
the input parameter in adapter service is varchar2
when i run this adapter servcie, it works fine if the input parameter’s length is less than 2010byte. Else, we would get an error message below:
com.wm.app.b2b.server.ServiceException: [ART.117.4002] Adapter Runtime (Adapter Service): Unable to invoke adapter service lywTest.db:insLywt.
[ADA.1.316] Cannot execute the SQL statement “insert into lywt
(substrb(?,1,100))”. "
(17070) …
It is said this error can occur even in a pure java program. Maybe this is the oracle driver’s error.
But, did anyone meet this problem before? How to solve it
Our jdbc driver is classes12.zip,
oracle version:Oracle9i Enterprise Edition Release - 64bit Production

Any comments are higtly appricated!


Before calling this adapter service use a MAP statement to truncate the value you want to insert using the pub.string:substring built-in service.



Thanks Mark.
but we have to modify handreds of packages using this method. So i wanna know if there is any other easy way to solve this problem.

Hello Nancy

You could try to change the data typ to CLOB , which can hold more than varchar2


varchar2 type supports only about 2000 byte.