(原创)oracle目录及Long类型操作

简介: --创建一个表 create table ascii_docs ( id number, document long ); --创建一个目录 create or replace directory OUT_PATH as 'c:\temp'; --给目录授予权限 grant rea...

--创建一个表
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;

目录
相关文章
|
14天前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
实时计算 Flink版操作报错之读取Oracle数据库时遇到找不到驱动,是什么原因
|
22天前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
63 0
|
22天前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
39 0
|
14天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错之遇到报错 Oracle 19C,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
19天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
42 3
|
22天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
38 0
|
7天前
|
存储 机器学习/深度学习 搜索推荐
long long类型介绍
long long类型介绍
|
7天前
|
安全 Java 编译器
long类型在32位操作系统上的安全问题
long类型在32位操作系统上的安全问题
14 1
|
14天前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错之同步Oracle时出现主题为空的报错该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
18天前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错合集之在连接Oracle 19c时报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
44 0