我从oracle Clob字段读取数据,并将其存储到字节数组中。我使用的是Clob,因为varchar2的某些字段的大小不够。
我正在使用这个java代码转换字节数组
String s1 = Arrays.toString(byteArray);
String s2 = new String(byteArray, StandardCharsets.UTF_8).trim();
System.out.println(s1);
System.out.println(s2);;
s1输出为
[0, 84, 0, 1, 2, 12, -128, 0, 0, 2, 0, 0, 0, 1, 0, 0, 1, 101, -74, -97, 0, 1, -106, 20, 0, 1, 47, -101, 0, 41, 0, 41, 3, 105, 0, 1, 0, 65, 0, 84, 0, 84, 0, 82, 0, 73, 0, 66, 0, 0, 0, 0, -110, -125, 16, -93, 9, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -116, 81, 2, -62, 27, 50, 0, 50]
s2输出为
预期输出
ATTRIBUTE19 + ATTRIBUTE16
有人能给我一些关于结果字符串中可能导致这些奇怪字符的信息吗?
[编辑]
我还尝试将其中一个clob字段更新为1个字符' T'这是结果
我发现这很奇怪,因为这个字段中没有LAST字样,但其他两个字段都有。这些字段的内容是
(LAST_ENTRY == '') ? '' : $BON_AWARD_PCT_1 * $BON_BASE / 100
和
(LAST_ENTRY == '') ? '' : doRound($BON_AWARD_AMT_1 / $BON_BASE * 100,'0.01')^IF($BON_BASE = 0,0,$BON_AWARD_AMT_1 / $BON_BASE * 100)