BLOB.createTemporary()无效的参数异常

时间:2011-09-02 15:30:27

标签: java oracle websphere blob sqlexception

在这里,我遇到了另一个可能无法回答的问题,因为这是一个奇怪的问题!我们正在使用Rational Software Development Platform V6和WebSphere V5.1来运行我们的应用程序。我们与CVS合作分享来源。应用程序生成PDF报告并对其进行压缩,然后将其放入BLOB字段中的数据库(Oracle 9i)中。到目前为止,一切正常。使用RAD,我们使用ojdbc14.jar来连接数据库(我们一直在使用它...)。那就是说,当我们在本地运行应用程序时,以下行引发了一个异常:

tempBlob = BLOB.createTemporary(cnn, true, BLOB.DURATION_SESSION);

异常是SQLException,表示调用中的无效参数。看看这个,我没有看到哪个参数可能是错误的,因为数据库访问是集中的,而对象cnn是OracleConnection类型,它是与我们在整个应用程序中使用的相同函数的retreive。所以,我尝试使用ByteInputStream来使用setByteStream设置预准备语句的参数。我的字节数组的值是好的,它包含2 MO的东西。当我执行查询时,它表示1行更新。数据库中有一个字段调用finished_time已成功更新,另一个字段即报告字段为空....

如果我回到createTemportary函数,我们为3个开发人员工作了一天来解决问题,我们没有发现任何问题......所以,我决定在DEV服务器上迁移代码。我提交更改,创建一个全新的工作区,检出并运行Ant构建,构建,通过FTP发送WAR并将其部署在WebSphere服务器上。然后我尝试生成报告,数据库成功更新。 createTemporary函数不会引发任何异常,但会在本地引发异常。问题是,我们当中没有人可以在本地做到这一点!?!怎么会?任何提示?

1 个答案:

答案 0 :(得分:0)

我不知道它是否可以提供帮助,但我处于相同的情况。 我试图在blob中插入一个streamBuffer。我在Ubuntu OS中使用Oracle数据库。 我通过更改oracle ojdbc驱动程序来解决问题。我用10g版本升级它。当您尝试使用BLOB类型时,似乎9版本无法正常工作。 我希望它可以提供帮助。 祝你好运......