爱问知识人 爱问教育 医院库

如何读取Oracle的BLOB字段里的文件?

首页

如何读取Oracle的BLOB字段里的文件?

如何读取Oracle的BLOB字段里的文件?

提交回答

全部答案

    2017-07-27 16:42:53
  •   使用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 以上是我对于这个问题的解答,希望能够帮到大家。
      

    李***

    2017-07-27 16:42:53

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):