我需要将一个大字符串存储到Oracle数据库中,该字符串的长度最多为10000个字节。我知道Oracle 12c中有一些配置可以增加varchar2的4000字节限制。但是我没有选择使用该配置。
因此,我倾向于使用CLOB数据类型。我以前没有使用CLOB的经验。所以我有担心。
我在SO上看到了以下内容
Java: How to insert CLOB into oracle database
我不想使用任何Oracle软件包来处理CLOB类型。我的问题是,以下内容对我而言足够安全吗?
要存储:
try {
String myclobstring = "xx ........";
String sql = "Insert into mytable (clobfield) values (?)";
Statement stmt = conn.prepareStatement(sql);
stmt.setString(1, myclobstring);
.
.
}
要检索:
try {
String sql = "select clobfield from mytable";
stmt = conn.createStatement();
ResultSet result = stmt.executeQuery(sql);
String s = result.getString ("clobfield');
.
.
}
答案 0 :(得分:0)
您可以将CLOB创建为字符串,尽管对于很大的东西使用stmt.setCharacterStream可能会更好。这是我发现的一个例子,很好地显示了这一点: Storing Clobs
如果不想使用Oracle特定代码,也可以使用java.sql.Clob。
From Oracle's documentation on CLOB 使用java.sql.Clob并通过连接的createClob函数创建CLOB。
答案 1 :(得分:0)
我认为我会发布答案,因为我没有看到明确的答案。到目前为止,setString()/ setString()最多可将10K个字符存储到CLOB字段中。我可以毫无问题地找回存储的东西。
我确实看到了以下相关的SO帖子,这使我更加自信。