简体   繁体   English

IBM i(AS400)DB2从Java检索和解压缩值

[英]IBM i (as400) DB2 retrieve and unpack value from java

I'm trying to retrieve a packed value from db2 (as400). 我正在尝试从db2(as400)中检索打包的值。 I have no experience with DB2 and completely unaware of PACK values. 我没有使用DB2的经验,并且完全不了解PACK值。

Can somebody provide me packing or unpacking algorithm. 有人可以给我打包拆包算法。

I have already tried SELECT HEX(value) FROM..... . 我已经尝试过SELECT HEX(value) FROM..... This is not working... 这不起作用...

Thanx in advance. 提前感谢。

Don't do anything special. 不要做任何特别的事情。 DB2 internally stores some numbers as packed, but when it delivers those numbers to you, it unpacks them. DB2在内部存储一些打包的数字,但是当将这些数字交付给您时,它将对它们进行打包。 select packed_numeric_column from db2_table... will work just fine. select packed_numeric_column from db2_table...就可以了。

select cast(myfield as numeric(18,6)) as myfield from mytable.

Problem solved, 问题解决了,

We can decrypt <BLOB> type value using IBM500 Coded character set identifiers , in java. 我们可以在Java中使用IBM500 编码字符集标识符解密<BLOB>类型值。

//rsAS400.getBytes("F00001") this returns <BLOB> type value

String value = new String(rsAS400.getBytes("F00001"), "IBM500");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM