使用ORADBI读取存储在BLOB字段里的多个文件,并还原到指定的路径下。  下面是完整的代码:  //  // read_blobfile。c - 读BLOBFILE的例子  //内存泄漏检测  // 在需要检测的地方放置语句:  // _CrtDumpMemoryLeaks();  // 以下3句的次序不能改变  #define _CRTDBG_MAP_ALLOC     #include  #include  // 包含唯一的ORADBI 头文件  #include "。

。/oradbi。h"  #ifdef _DEBUG  #pragma comment(lib, "。。/oradbi_dll/debug/oradbid。lib")  #else  #pragma comment(lib, "。。/oradbi_dll/release/oradbi。

lib")  #endif  #define ORADB_SERVICE   "CHEUNG"  #define ORADB_LOGUSER   "mineusr"  #define ORADB_PASSWORD  "minepwd"  /*==================================================  -- Create table  create table TEST  (  BM    VARCHAR2(10),  NAME  VARCHAR2(100),  BIRTH DATE,  DATA  BLOB  )  tablespace USERS  pctfree 10  initrans 1  maxtrans 255  storage  (  initial 64K  minextents 1  maxextents unlimited  );  ====================================================*/  //  // 显示如何把从BLOB字段读出数据并还原为文件  //  void select_blob_data()  {  lresult     rc;  ora_error_t     err;  ora_connection  con = 0;  ora_sqlstmt     stmt = 0;  ora_rowset      rs = 0;  ora_column      col;  ora_datetime    odt;  char       *psz;  char        buf[30];  char      **pp_fnames = 0;  ushort      num_files = 0;  ushort      ui;  // 创建连接  rc = ORA_connection_create( &con, ORADB_SERVICE, ORADB_LOGUSER, ORADB_PASSWORD, OCI_THREADED|OCI_OBJECT, FALSE, &err);  assert(rc==ORC_SUCCESS);  // 创建SQL, 只取一行记录: where rownum<2  rc = ORA_sqlstmt_create( &stmt, con, "select BM,NAME,BIRTH,DATA from TEST where rownum<2", -1, 0, &err );  assert(rc==ORC_SUCCESS);  // 执行选取  rc = ORA_sqlstmt_select(stmt, MOD_DEFAULT, &rs, &err);  assert(rc==ORC_SUCCESS);  printf("n     BM      NAME     BIRTH      DATAn------------------------------------------------------n");  while (ORA_rowset_next(rs))  {  // BM  col = ORA_rowset_get_column_by_index(rs, 1, &err);  assert(ORA_column_not_null(col));  ORA_column_as_string(col, &psz, &err);  printf("  %s  ", psz);  // NAME  col = ORA_rowset_get_column_by_index(rs, 2, &err);  assert(ORA_column_not_null(col));  ORA_column_as_string(col, &psz, &err);  printf("  %s  ", psz);  // BIRTH  col = ORA_rowset_get_column_by_index(rs, 3, &err);  assert(ORA_column_not_null(col));  ORA_column_as_datetime(col, &odt, &err);  ORA_datetime_to_string(odt, "YYYY-MM-DD HH:UU:SS", buf, &err);  printf("  %s  ", buf);  // DATA  col = ORA_rowset_get_column_by_index(rs, 4, &err);  assert(ORA_column_not_null(col));  // 读取LOB字段数据, 写入文件:  rc = ORA_column_read_lobfile(col, "c:\temp", &pp_fnames, &num_files, &err);  assert(rc==ORC_SUCCESS);  for(ui=0; ui

以上是我对于这个问题的解答,希望能够帮到大家。

全部

oracle读取blob字段的方法,如何读取Oracle的BLOB字段里的文件?相关推荐

  1. python读文件一次读特定行_Python3实现从文件中读取指定行的方法 python读取文本内每行指定内容...

    如何用python读取文本中指定行的内容在这个世界上说不出口的话太多了,你能不能陪小编去,你能不能留下来,你能不能帮帮小编,你对小编很重要,所以你可不可以不要走,到最后哽咽出口的却是,没关系,小编可以 ...

  2. oracle 4098,ORA-04098错误解决方法-数据库专栏,ORACLE

    ora-04098错误解决方法 数据库版本:8.1.5 平台:solaris 5.7 背景: 用户建立了一个trigger: create or replace trigger ddl_deny be ...

  3. oracle orcl不存在,oracle服务丢失的处理方法之OracleServiceORCL不存在示例

    oracle服务是oracle数据库的重要组成部分,下面就教您oracle服务丢失的处理方法,如果您之前遇到过oracle服务丢失的问题,不妨一看. 今天发现数据库服务器上的所有oracle服务都丢失 ...

  4. c语言 mysql_bind,linux C mysql的blob门类字段的插入和读取

    linux C mysql的blob类型字段的插入和读取. RT,没对mysql中的这种类型操作过,还请各位大神帮帮忙,需要一点代码,确实有点急,网上看了一些,但是没怎么看懂.还望指导,多谢!! my ...

  5. oracle Blob保存方式,关于文件保存到Oracle中BLOB字段的方法及例子

    关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass { pu ...

  6. C++读取文本文件中以TAB作为分隔符,且中间字段有为空的情况的方法?

    数据文件:testData.txt 内容: 111 222 444 555 思路: getline()将testData.txt中的第一行记录读入到一个string中,然后搜索第n个分隔符进行定位,判 ...

  7. python操作文件的库_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefil ...

  8. python文件读写用到的库_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写shapefile文件,查询相关信息,github地址为 import shapefile # 使用pyshp库 file = shapefile.reader(" ...

  9. 使用FileReader对象的readAsDataURL方法来读取图像文件

    使用FileReader对象的readAsDataURL方法来读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊 ...

  10. Unity——写入和读取Json信息的方法

    首先在Unity的Assets目录下新建一个Plugins文件夹,引入LitJson.dll类库!!! 编写读写脚本时,还需要再导入命名空间 using LitJson 关于Litjson文件: 可以 ...

最新文章

  1. 神经网络基础及逻辑回归实现
  2. Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4
  3. 边结点结构体的定义及使用
  4. icloud连接服务器时出现问题_ios13 ipad/iphone与windows 连接传输文件显示连接服务器用户或密码无效解决方法...
  5. Java学习笔记7-1——注解与反射
  6. 双端堆c语言,数据结构——双端堆(C语言)
  7. MyBatis的概述及使用
  8. 网络编程 - socket接收大数据
  9. C#对象赋值出现的诡异问题,或许你也遇到过,有待你的解决
  10. 修改oracle安装目录权限设置权限,oracle rac环境,安装目录权限被修改乱了,怎么恢复?...
  11. 机电传动与控制【1】
  12. python修改第三方库重写_对Python第三方库,再次封装
  13. 龙芯3号处理器-龙芯3A1000,龙芯3A2000/3B2000,龙芯3A1500I,龙芯3A3000/3B3000
  14. 智点软件定制**服装工厂衣服加工计件工资软件的方案
  15. 我经历的日本东京交通
  16. 问题 F: 寻找预言家
  17. 网络安全知识体系1—网安小白第二篇
  18. vim教程之基本使用
  19. Linux中创建组的命令,linux创建用户组命令
  20. wifi softap(hotspot) porting

热门文章

  1. Extjs textfield keyup事件
  2. UML学习系统(一)
  3. springboot对应springcloud各个版本和官网查询地址
  4. Spring IOC源码笔记(三)
  5. 并发编程常见面试题总结三
  6. Java 注解Annotation总结一
  7. uploadify上传文件Firefox浏览器上传失败解决方法
  8. [python] 字典和列表中的pop()函数
  9. 怎么用几何画板作一些简单的图形
  10. Python 的 MySQL 模块