繁体   English   中英

sql将blob读取为文本

[英]sql read blob as text

我正在尝试将名为observation的表字段输出为文本,并将其存储为blob。 SQL是

select invoice_id, observation from table1

我得到的输出是as.raw(c(0x31, 0xba, 0x20, 0x50, 0x52, 0x4f, 0x4d, 0x4f, 0x20...

如何输出为文本?

如果要将文本保存在blob中,则应使其成为blob sub_type text (又名blob sub_type 1 ),而不是blob (又名blob sub_type binary又名blob sub_type 0 )。 尽管这不能保证(某些Firebird驱动程序无法区分blob子类型)。

要将二进制Blob转换为文本Blob,请使用

select cast(binblob as blob sub_type text character set utf8) from blobtbl

或不带字符集子句:

select cast(binblob as blob sub_type text) from blobtbl

另外,您可以将其VARCHARVARCHAR ,但请确保指定足够长的varchar来容纳整个值,否则会出现截断错误。 例如:

select cast(binblob as varchar(1000) character set utf8) from blobtbl

在这两种情况下,字符集子句都是可选的; 如果不使用,它将使用连接字符集。 请注意,如果使用了错误的字符集,则可能会出现音译错误。

暂无
暂无

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

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