`
yuyee
  • 浏览: 57465 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java调用PL/SQL读写blob数据

阅读更多
最近项目里需求,需要将每天的数据量写成xml并压缩存储到数据库中,以免每次调用都要进行依次编码并压缩。自然,想到了pl/sql来完成部分业务操作。


建表
create table TEST
(
  KEY       DATE,
  DATAVALUE BLOB
)

create or replace procedure INSERT_BLOB(KEYDATA  in VARCHAR2,
                                        BLOBDATA in TEST.Datavalue%TYPE) is
  v_lobd TEST.DATAVALUE%TYPE;
  v_key   TEST.Key%TYPE;
  v_count integer;
begin
  v_key := to_date(KEYDATA, 'yyyy-mm-dd');
  select count(*) into v_count from TEST t where t.key = v_key;
  if v_count != 0 then
    delete from TEST t where t.key = v_key;
  end if;
  insert into TEST (key,datavalue)  VALUES(v_key, empty_blob()) returning datavalue into v_lobd;
  dbms_lob.open(v_lobd,Dbms_Lob.lob_readwrite);
  dbms_lob.writeappend(v_lobd,utl_raw.length(BLOBDATA),BLOBDATA);
  dbms_lob.close(v_lobd);
  commit;
EXCEPTION
  when others then
    begin
      rollback;
    end;
end INSERT_BLOB;



create or replace procedure READ_BLOB(STARTDATE in VARCHAR2,
                                      ENDDATE   in VARCHAR2,
                                      BLOBDATA  out SEARCHDEMOPACKAGE.ResultCursor) is

v_startdate TEST.Key%TYPE;
v_enddate TEST.Key%TYPE;
begin
v_startdate :=to_date(STARTDATE,'yyyy-mm-dd');
v_enddate :=to_date(ENDDATE,'yyyy-mm-dd');
open BLOBDATA for select t.datavalue from TEST t where  t.key>=v_startdate and t.key<=v_enddate;
end READ_BLOB;
分享到:
评论

相关推荐

    PL/SQL 程序设计

    在PL/SQL中,我们可以读写LOB字段,进行数据的检索和存储。 通过学习“Oracle9i PLSQL程序设计”,你将掌握如何在Oracle环境中使用PL/SQL编写高效、可靠的数据库应用程序。这包括理解数据类型、控制结构、异常处理...

    Oracle PL SQL BuiltIns - Pocket Reference

    - **DBMS_LOB**:处理LOB(Large Object)数据类型,包括BLOB(Binary Large Object)、CLOB(Character Large Object)和BFILE,提供读写、截取、比较和传输大对象数据的函数和过程。 每种内置包都有其特定的应用...

    plsql oci库

    - BLOB/CLOB处理:提供了处理大对象(Binary Large OBjects和Character Large OBjects)的API,支持流式读写。 - 并发控制:包括行级锁定、乐观并发控制等机制,确保多用户环境下数据的一致性。 - 复杂的数据类型:...

    Oracle教案

    同时,你还将学习如何使用PL/SQL的异常处理机制来处理LOB操作中可能出现的问题,如内存溢出或读写错误。 总结一下,Oracle教案涵盖了以下几个关键知识点: 1. PL/SQL基础:变量声明、条件语句、循环结构、异常处理...

    JAVA C/S架构应用程序

    这个应用使用Oracle数据库存储和检索数据,说明开发者可能对Oracle SQL语法、PL/SQL(Oracle的编程语言扩展)以及Oracle特有的数据类型有深入理解。 4. **存储过程**:存储过程是预编译的SQL语句集合,存储在数据库...

    oracle 资料--图片存取

    DBMS_LOB包含了一系列的子程序,如BULK COLLECT INTO,用于批量处理BLOB数据,以及OPEN、READ和WRITE等函数,用于读写BLOB内容。 3. **INSERT与UPDATE语句**: 存储图片时,我们需要先创建一个包含BLOB列的表,...

    oracle中blob 字段类型的应用

    另一个示例`getclob`函数是一个返回Clob内容的PL/SQL函数,它也使用动态SQL从指定位置读取Clob数据。这些示例展示了如何在PL/SQL中灵活处理和操作Blob字段。 在实际应用中,使用Blob字段类型时,需要考虑性能和存储...

    Oracle_韩顺平 PLSQL_韩顺平

    1. **后端开发工具:** PL/SQL程序部署在数据库服务器端,客户端可以通过简单接口调用这些程序,减少了网络传输的数据量,提高了应用程序的整体性能。 2. **更好的性能:** 多条SQL语句可以封装在一个PL/SQL程序中,...

    TEST-EMP-IMAGE.rar_oracle

    在Oracle数据库环境中,将图像数据存储到数据库中是常见的需求,尤其在开发Oracle Forms应用时。...通过理解BLOB数据类型、PL/SQL处理以及Oracle Forms的交互机制,开发者可以有效地管理和操作数据库中的图像数据。

    《Oracle 11g ProC/C++编程艺术》-源代码

    6. **LOB处理**:Oracle 11g对大对象(LOB)的支持在ProC中得到了体现,可以方便地读写BLOB、CLOB等大数据类型。 7. **并发控制**:ProC支持事务管理和并发控制,确保了数据库操作的一致性和完整性。 8. **性能...

    OCI接口类 OCI接口类

    通过OCI,开发者可以实现低级别数据库访问,如直接操作数据块、索引和事务控制,以及高级别的功能,如PL/SQL调用和游标处理。 2. OCI结构 OCI接口由一系列的函数和数据结构组成,这些函数用于执行数据库操作,而...

    Forms Developer使用及解决问题

    8. **读写文本文件**: 在Developer/2000中,可以使用PL/SQL包如UTL_FILE来读写操作系统文本文件。 9. **标题修改**: 修改FORM运行时的标题,可以通过修改FORM对象的属性或在运行时使用PL/SQL代码来实现。 10. **...

    Oracle数据库的操作程序.docx

    8. **读写文本文件**:使用PL/SQL的`UTL_FILE`包可以实现FORM中对操作系统文本文件的读写操作。必须在服务器端指定文件路径,并确保FORM有读写权限。 9. **修改FORM标题**:要更改FMX模块运行时的标题,可以在FORM...

    Oracle导入导出图片及Excel(标注:没有源代码!)

    可以编写PL/SQL过程或者使用Java、C#等编程语言,调用Oracle的JDBC或ODBC驱动,获取BLOB数据并保存为图片文件。 4. **Excel数据交互**:在Oracle与Excel之间进行数据交换,通常会用到API库,如Java的Apache POI(在...

    Oracle_style.rar_OCI 手册_OCI手册_oci_oracle_style

    8. **LOB(Large Object)操作**:OCI提供了对BLOB、CLOB、NCLOB等大对象的支持,包括读写、定位和截取等操作。 9. **并发控制和行锁定**:通过oci_rowid()获取行标识符,oci_lock_row()实现行级别的锁定,以实现...

    2022年优秀-Oracle数据库中的Web服务.pptx

    Oracle 数据库 10g 中的 Web 服务可以使用标准的或第三方的 Java 库扩展数据库功能,实现对 PL/SQL 类型(CLOB、BLOB)的 Web 服务支持。 6. 快速连接故障切换 Oracle 数据库 10g 中的 Web 服务可以实现快速连接...

    oracle最新OCI文件.zip

    7. **LOB处理**:Oracle OCI还支持大对象(LOB)的操作,如读写BLOB(二进制大对象)和CLOB(字符大对象)。 8. **预编译的SQL语句**:`OCIPstmtPrepare()`和`OCIPStmtExecute()`用于预编译和执行SQL语句,提高性能...

    ORACLE常用包参考手册

    14. **DBMS_LOB**:处理大对象(LOB)数据类型,如BLOB(二进制大对象)、CLOB(字符大对象)等,提供了读写、截取、比较等操作。 15. **DBMS_SQL**:提供动态SQL执行的功能,可以解析、执行和返回动态SQL语句的...

    [应用开发及迁移]ProC迁移指南.pdf

    这通常涉及到创建 PL/SQL 单元、设置参数、调用执行函数等步骤。 #### 五、总结 KBPro*C 作为一种嵌入式 SQL 开发工具,为开发者提供了高效且灵活的方式来操作数据库。通过本文档,我们可以了解到 KBPro*C 的基本...

Global site tag (gtag.js) - Google Analytics