如何使用Java/JDBC在Oracle数据库中存储长度超过4000个字符的字符串?

Ven*_*rue 2 java oracle jdbc clob

我不确定如何使用Java/JDBC将非常长的字符串插入Oracle数据库.

我有一个大于4000个字符的字符串,假设它是6000.我想取这个字符串并将其存储在Oracle数据库中.

这样做的方法似乎是使用CLOB数据类型.好的,所以我将列声明为描述CLOB.

现在,当实际插入数据时,我有一个准备好的语句pstmt.看起来像pstmt = conn.prepareStatement(“INSERT INTO Table VALUES(?)”).

所以我想使用这个方法pstmt.setClob().但是,我不知道如何使用我的String创建一个Clob对象; 没有构造函数(可能是因为它可能比可用内存大得多).

如何将我的String放入Clob?

请记住,我不是一个非常有经验的程序员; 请尽量保持解释尽可能简单.效率,良好实践等不是这里的关注点,我只想要绝对最简单的解决方案.如果可能的话,我想避免下载其他软件包; 现在我只是使用JDK 1.4和标记的内容ojdbc14.jar.我看了一下,但我没能按照我发现的任何解释.

如果你有一个不使用Clobs的解决方案,我也会对此持开放态度,但它必须是一列.

Boz*_*zho 7

你有(至少)两个选择:

  • 用于connection.createClob()创建a Clob,在其上设置数据,并在准备好的语句上设置它.这适用于较小的数据

  • 使用preparedStatement.setClob(position, reader)- 在这里你将有一个Reader实例.

  • 好的,我有10.1.0.5驱动程序.我决定使用Property类并将"SetBigStringTryClob"设置为"true",这样我就可以使用pstmt.setString,如果字符串很长,它就不会抱怨. (4认同)
  • 这可能意味着您的jdbc驱动程序不是最新的. (2认同)