2012-03-17 1605 views
0

我有一列,它是在Postgres的BYTEA,我可以用这样的语句来得到这样的输出:PostgreSQL的 - 如何BYTEA文本或字符串转换在Java中

select encode(mycolumn,'escape') from personTable; 

,并得到:

254\355\000?sr\000?java.util.HashMap??\332\301\303?`\321?\000?F\000 
loadFactorI\000 [email protected]\000\000\000\000\000?w?\000\000\000?\000\000\000?t\000?  
userIdt\000 
USER2200000x 

如何以纯文本形式查看此内容?它确实存储了一个java.util.HashMap-

回答

3

这实际上是一个Java问题,而不是PostgreSQL问题。 personTable.mycolumn持有使用Java序列化API创建的字节字符串,并且检索字节字符串表示的原始对象,则需要使用相同的API。 (请参阅"Discover the secrets of the Java Serialization API"的示例代码。)

+0

好的,这是有道理的,应用程序正在保存序列化的对象,我只是没有意识到没有办法看到postgres中的纯文本。谢谢! – chrismarx 2012-03-17 20:45:04

+0

@chrismarx:不客气! – ruakh 2012-03-17 20:46:15

+0

你是如何解决问题的?我也想将一个字节的postgres转换为Java String。请在这里看到我的问题http://dba.stackexchange.com/questions/53309/how-to-convert-bytea-to-text-value-in-postgres – aProgrammer 2013-11-14 14:41:13

相关问题