我有一个JPA实体已经存在于数据库中.
我希望有一个副本(具有不同的ID),并修改了一些字段.
最简单的方法是什么?喜欢:
@Id字段null并保持它将工作?@Id)?我CLOB(2000000)在db2(v10)数据库中有一个字段,我想UPDATE对它运行一个简单的查询,将每个出现的"foo"替换为"baaz".
由于该字段的内容超过32k,我收到以下错误:
"{some char data from field}" is too long.. SQLCODE=-433, SQLSTATE=22001
Run Code Online (Sandbox Code Playgroud)
如何更换值?
更新:查询如下(将UPDATE更改为SELECT以便于测试):
SELECT REPLACE(my_clob_column, 'foo', 'baaz') FROM my_table WHERE id = 10726
Run Code Online (Sandbox Code Playgroud)
更新2
正如mustaccio所指出的那样,REPLACE对CLOB字段不起作用(或者至少没有VARCHAR对输入的数据进行强制转换- 在我的情况下,由于数据大小超过32k而不可能) - 问题是关于找到一种替代方法来REPLACE实现CLOB字段的功能.
谢谢,克里西
我有一堆纯文本文件,我从第三方服务器下载.其中一些是胡言乱语; 服务器发送了ENCODING1的信息(例如:UTF8),但实际上文件的编码是ENCODING2(例如:Windows1252).
有没有办法以某种方式纠正这些文件?
我认为文件是(ENCODING1)主要以UTF8,ISO-8859-2和Windows1252编码(我认为它们大多是用这些编码之一保存的).我正在考虑重新编码每个文件内容
new String(String.getBytes(ENCODING1), ENCODING2)
使用ENCODING1和ENCODING2的所有可能性(对于3种编码将是9个选项),然后找到一些方法(例如:charachter frequency?)来判断9个结果中的哪一个是正确的.
这有没有第三方图书馆?
我试过JChardet和ICU4J,但据我所知,他们两个都只能在ENCODING1发生的步骤之前检测到文件的编码
谢谢,克里西