zoukankan      html  css  js  c++  java
  • (原创)oracle目录及Long类型操作

    --创建一个表
    create table ascii_docs
    (
    id number,
    document long
    );
    --创建一个目录

    create or replace directory OUT_PATH as 'c:\temp';
    --给目录授予权限

    grant read, write on directory OUT_PATH to test;

    create or replace function dump_doc(docid in number,filename in varchar2) return varchar2 is
      data_chunk varchar2(254);
      chunk_size number :=254;
      chunk_size_returned number;
      --set location to be the directory in which the file should go.
      location varchar2(20) := 'OUT_PATH';
      mycursor number;
      stmt varchar2(1024);
      cur_pos number :=0;
      rows number;
      dummy number;
      file_handle utl_file.file_type;
      status varchar2(50);
      begin
      --open the file for writing.
      file_handle := utl_file.fopen(location,filename,'w');
      --bind the doctoget host variable with the plsql parameter docid
      --whitch is passed into the function
      stmt := 'select document from ascii_docs where id = :doctoget';
      mycursor := dbms_sql.open_cursor;
      dbms_sql.parse(mycursor,stmt,dbms_sql.v7);
      dbms_sql.bind_variable(mycursor,':doctoget',docid);
      --only doing one fetch for the primary key as assuming the whole
      --document is stored in one row
      dbms_sql.define_column_long(mycursor,1);
      dummy := dbms_sql.execute(mycursor);
      rows := dbms_sql.fetch_rows(mycursor);
      loop
        --fetch 'chunks of the long until we have got the lot
        dbms_sql.column_value_long(mycursor,1,chunk_size,cur_pos,data_chunk,chunk_size_returned);
        utl_file.put(file_handle,data_chunk);
        cur_pos := cur_pos + chunk_size;
        exit when chunk_size_returned =0;
      end loop;
      dbms_sql.close_cursor(mycursor);
      utl_file.fclose(file_handle);
      return('success');
      exception
        when others then
          utl_file.fclose(file_handle);
          raise;
          return('Fallre');
      end dump_doc;

  • 相关阅读:
    我的大学,我的梦想
    c++读取lua配置基础类
    无奖调查,你希望我写哪些题材的文章
    无奖调查,你希望我写哪些题材的文章
    lua不同模块调用
    cmake配置c++可调用的文件路径参数
    Java实现 LeetCode 335 路径交叉
    Java实现 LeetCode 335 路径交叉
    Java实现 LeetCode 335 路径交叉
    Java实现 LeetCode 334 递增的三元子序列
  • 原文地址:https://www.cnblogs.com/jimeper/p/961054.html
Copyright © 2011-2022 走看看