小编use*_*469的帖子

将blob转换为clob

我正在使用oracle 11g,我正试图找出文本的长度.我通常会从表中使用select length(myvar),但我不能这样做.

我想查询的表有一个保存字符或照片的BLOB列.我想知道有BLOB列的字符数.

我尝试使用表中的UTL_RAW.CAST_TO_VARCHAR2(myblob)将我的BLOB转换为char,但是这个函数无法正常工作或者我犯了一个错误.

例如:我的BLOB有单词Section,当我在数据库中以十六进制形式看到这个时,我看到Section.我不知道为什么每个字母之间都有这些点.然后我使用了这个查询

select UTL_RAW.CAST_TO_VARCHAR2(myblob) 
from table
Run Code Online (Sandbox Code Playgroud)

这个查询的结果是'S',所以它不是我的BLOB所拥有的完整单词,也不是我进行此查询时的完整单词

select length(UTL_RAW.CAST_TO_VARCHAR2(myblob))
from table
Run Code Online (Sandbox Code Playgroud)

结果是18,单词Sections没有18个字符.

我试图将blob转换为varchar,虽然我认为我最好的选择是clob,因为它可以保存的文本长度超过varchar的限制.我尝试通过进行此查询来做到这一点(我不确定这是否正确,但我是在互联网上找到的)

select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(myblob, 32767, 1))
from table
Run Code Online (Sandbox Code Playgroud)

此查询还返回'S'

我希望你能帮我解决这个问题.谢谢你的进步

oracle blob clob

7
推荐指数
3
解决办法
4万
查看次数

标签 统计

blob ×1

clob ×1

oracle ×1