gpt4 book ai didi

sql - Oracle 如何解压缩 Blob

转载 作者:行者123 更新时间:2023-12-04 22:10:31 24 4
gpt4 key购买 nike

我正在从 Oracle 表中提取 BLOB 列。

我得到的一些 blob 值是正确的字符串字符。

但是一些 blob 值没有显示正确的字符串。这些行似乎被“压缩”

Table Name: TableA
Column Name: ID, Type: Number
Column Name: BLOB_BINARY_VALUE, Type: BLOB
Column Name: BLOB_COMPRESSED, Type: Number

这是我使用的 SQL:

Select BLOB_BINARY_VALUE FROM TableA WHERE ID =  1234567;

我也试过使用:

Select TO_BLOB(BLOB_BIN_VALUE) FROM TableA WHERE ID =  1234567;

我得到的错误 Blob 值的示例:(由于它的长度,我修剪了下面的值)

 öp‘CÇL.aÜÌIëÉ8gbȨ!ƒ™2fÌÀÌ…mc›cÆÌ:0óÆ
:bØ>n€7iض1M9sÊТÉSДaÃ6gvôéÓ@;iÊÜY“Æ

我猜这个 BLOB 是压缩格式的。我怎样才能解压缩这种 BLOB?

非常感谢您。

更新 1:我也期望其他人提供的正确 Blob 查询示例:

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg;}}
\viewkind4\uc1\pard\f0\fs20 MESSAGE HERE MESSAGE HERE MESSAGE HERE. \par
}

更新 2:

数据库中还有另一列名为“BLOB_COMPRESSED”。具有“0”的行是显示正确值的行。具有“1”的行是显示错误值的行。所以我猜数据被压缩了。

更新 3:我尝试按照此链接中的建议进行操作,但仍然喜欢压缩字符串:How do I get textual contents from BLOB in Oracle SQL

Select utl_raw.cast_to_varchar2(dbms_lob.substr(BLOB_BIN_VALUE)) 
FROM TableA
WHERE ID = 1234567;

最佳答案

这对我有用:-

select  
utl_raw.cast_to_varchar2( dbms_lob.substr( utl_compress.lz_uncompress(BLOB_BIN_VALUE), 2000, 1) )
from TableA where ID = <ID>;

关于sql - Oracle 如何解压缩 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24277534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com