Java 将对象转换为CLOB
我有一个对象数组(它是Oracle数据库中本机查询的输出),其中第一个元素是CLOB数据类型,需要转换为java字符串对象。我将如何实现这一点?请帮忙Java 将对象转换为CLOB,java,oracle,Java,Oracle,我有一个对象数组(它是Oracle数据库中本机查询的输出),其中第一个元素是CLOB数据类型,需要转换为java字符串对象。我将如何实现这一点?请帮忙 String sql = "select id, data from mytable"; List< Object[] > results = getEntityManager().createNativeQuery(sql).getResultList(); Map< Long, String >
String sql = "select id, data from mytable";
List< Object[] > results = getEntityManager().createNativeQuery(sql).getResultList();
Map< Long, String > map = new HashMap<>();
for (Object[] result : results) {
map.put(((Number) result[0]).longValue(), (String) result[1]);
}
@Lob
@Column(name = "DATA")
byte[] clobData
String sql=“选择id,mytable中的数据”;
List
data是mydata表中具有CLOB数据类型的列。
结果(1)将包含我的CLOB数据
@Lob
@Column(name = "DATA")
byte[] clobData
在放入HashMap时,我需要将结果(1)解析为字符串 如果CLOB的长度足够小(results=getEntityManager().createNativeQuery(sql).getResultList();
@Lob
@Column(name = "DATA")
byte[] clobData
Map @Lob
@Column(name = "DATA")
byte[] clobData
还要检查
result[1]
是否是java.sql.Clob
作为我的查询的解决方案,摆脱了本机查询,改用hibernate。
@Lob
@Column(name = "DATA")
byte[] clobData
用javax.persistence.Lob映射我的CLOB列
@Lob
@Column(name = "DATA")
byte[] clobData
请提供一个包含复制您的问题所需的java(以及,如有必要,SQL)代码的列表。添加了我的代码。请检查可能的重复项。我已更新了我的查询。请立即检查好吗?@PeaceIsPearl抱歉,我看不出您还需要什么,除了您必须用
((clob)结果[1]替换clob
)]
。我可以在我的答案中添加这一点。感谢您编辑代码。但我需要for循环,因为我需要多个id和数据行。没关系,这不是问题。我尝试了以下方法:Clob数据=(Clob)结果[1];数据如下所示:clob2:STRINGDECODE('name'pearl'\n validations'))。进一步搜索了STRINGDECODE函数,它就在那里,因为我在clob数据中有一个换行符。如果我删除了换行符,我会看到数据如下所示:clob2:('name'pearl''validations')我正在尝试使此查询在H2数据库上运行。