关于Oracle中的BLOB字段的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Oracle中的BLOB字段的问题相关的知识,希望对你有一定的参考价值。

现在有BLOB字段中已经有数据了,可能是图片,可能文本,还可能是其它的文件,我想知道如何获取BLOB字段中文件类型?急用,答对了加分!
找一下什么属性?怎么对照?麻烦您说明白点?

还是不可以,如果是声音呢。我想要获得的是详细的文件类型。

我现在是C#写的。

要取BLOB里面的值 必须要用到oracle里面的程序包DBMS_LOB
具体怎么实现 网上有 搜索一下就行了
1 自己先写一个存储过程
2 定义CLOB变量 用来接受BLOB的值
3 输出CLOB变量的值
步骤大致就是这样的 希望对你有帮助
参考技术A 1。看这个行不:select * from user_lobs;
2。用VB或C,或ASP。。。等将字段输出,
如果显示乱码,就是图片。
如果正常显示,就是文本。
3。
下面的例子是取前32k的clob的例子
你根据自己的要求修改一下
--create test table
create table t_clob
(id number,
col_lob clob
);
/

--create function to return value of lob type column
CREATE OR REPLACE FUNCTION GET_LOB(id number)
return varchar2
IS
l_buffer varchar2(32767);
l_amount number := 32767;
l_blob CLOB;
v_id number;
BEGIN
v_id := id;
SELECT col_lob
INTO l_blob
FROM t_clob
WHERE id = v_id;

DBMS_LOB.READ (l_blob, l_amount, 1, l_buffer);
return l_buffer;

EXCEPTION
WHEN OTHERS THEN
RAISE;
END;

--test case
SELECT A.ID,GET_LOB(id)
FROM T_CLOB A
WHERE A.ID = 1;

参考资料:ORACLE这个更专业:www.itpub.net

参考技术B 你找一下属性,再对照一下.

不同oracle版本对blob字段处理方式

SSH框架,在向oracle11g中插入图片时提示信息。

图片为byte[]对应数据库中的blob字段,错误原因是oracle版本问题,不同的版本处理方式不同。

Spring.xml配置

oracle9的处理方式:

<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" lazy-init="true" />  

    <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">  

        <property name="nativeJdbcExtractor">  

            <ref bean="nativeJdbcExtractor" />  

        </property>  

    </bean>  

oracle11的处理方式:

<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />  


ibatis 使用:

<insert id="insertExcel" parameterClass="java.util.Map">

insert into xzxk_spsc_sqclfj

 (wordid, tepid, tepcategory, buspkey, wordname, wordsize, wordcontent, createdate, createman, wordnew, wordremark,fileextname)

values

 (#WORDID#, #TEPID#, #TEPCATEGORY#, #BUSPKEY#, #WORDNAME#, #WORDSIZE#, #WORDCONTENT,handler=org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler#, sysdate, #CREATEMAN#, #WORDNEW#, #WORDREMARK#,#FILEEXTNAME#)

</insert>


以上是关于关于Oracle中的BLOB字段的问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的BLOB和CLOB字段类型的区别

如何在oracle中的blob字段下读取jpg格式文件保存

oracle中一些关于blob字段的操作

oracle数据库如何查询一张表中BLOB字段中的内容

FireBird 中Blob 字段最长是多长

不同oracle版本对blob字段处理方式