当前位置: 首页 > news >正文

Oracle导出clob字段到csv

使用UTL_FILE

ref: How to Export The Table with a CLOB Column Into a CSV File using UTL_FILE ?(Doc ID 1967617.1)

--preapre data
CREATE TABLE TESTCLOB(ID NUMBER, MYCLOB1 CLOB, MYCLOB2 CLOB );
INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(1,'Sample row 11', 'Sample row 12');
INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(2,'Sample row 21', 'Sample row 22');
INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(3,'Sample row 31', 'Sample row 32');
INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(4,'Sample row 41', 'Sample row 42');
INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(5,'Sample row 51', 'Sample row 52');
COMMIT;column MYCLOB1 format a20
column MYCLOB2 format a20
SELECT * FROM TESTCLOB;--create directory
CREATE OR REPLACE DIRECTORY MYDIR AS '/u02/';--create function
CREATE OR REPLACE FUNCTION EXPORT_TABLE_TO_CSV_FILE(p_query     in dbms_sql.varchar2a,p_separator in varchar2 default ',',p_dir       in varchar2,p_filename  in varchar2,p_is_head   in boolean default false)RETURN NUMBER isl_output        utl_file.file_type;l_theCursor     integer default dbms_sql.open_cursor;l_columnValue   varchar2(2000);l_columnValClob clob;l_status        integer;l_colCnt        number default 0;l_separator     varchar2(10) default '';l_cnt           number default 0;l_col_desc      dbms_sql.desc_tab;l_offset        integer;
BEGINdbms_sql.parse(l_theCursor,p_query,p_query.first,p_query.last,true,dbms_sql.native);dbms_sql.describe_columns(l_theCursor, l_colCnt, l_col_desc);for i in 1 .. l_colCnt loopif l_col_desc(i).col_type = 112 thendbms_sql.define_column(l_theCursor, i, l_columnValClob);elsedbms_sql.define_column(l_theCursor, i, l_columnValue, 4000);end if;end loop;l_status := dbms_sql.execute(l_theCursor);if dbms_sql.fetch_rows(l_theCursor) > 0 thenl_output := utl_file.fopen(p_dir, p_filename, 'w', 32767);if p_is_head thenfor i in 1 .. l_col_desc.count looputl_file.put(l_output, l_separator || l_col_desc(i).col_name);l_separator := p_separator;end loop;utl_file.new_line(l_output);end if;loopl_separator := '';for i in 1 .. l_colCnt loopif l_col_desc(i).col_type = 112 thenl_offset := 1;dbms_sql.column_value(l_theCursor, i, l_columnValClob);utl_file.put(l_output, l_separator);loopl_columnValue := dbms_lob.substr(l_columnValClob,2000,l_offset);-- dbms_output.put_line(l_columnValue);l_offset := l_offset + 2000;utl_file.put(l_output, l_columnValue);exit when trim(l_columnValue) is null;end loop;elsedbms_sql.column_value(l_theCursor, i, l_columnValue);utl_file.put(l_output, l_separator || l_columnValue);end if;l_separator := p_separator;end loop;utl_file.new_line(l_output);l_cnt := l_cnt + 1;exit when(dbms_sql.fetch_rows(l_theCursor) <= 0);end loop;end if;dbms_sql.close_cursor(l_theCursor);utl_file.fclose(l_output);return l_cnt;
END;
/set serverout on
DECLAREl_sql dbms_sql.varchar2a;l_cnt integer;
BEGINl_sql(1) := 'SELECT * FROM TESTCLOB';l_cnt := export_table_to_csv_file(l_sql,',','MYDIR','csvsample.csv',TRUE);
END;
/

使用sql developer

oracle开发的sql developer运行需要java.速度慢.
(不是plsql developer).
下载
在这里插入图片描述
1.Open SQL Developer:

Connect to your Oracle database using Oracle SQL Developer.
2. Run SQL Query:

Run a query to select the CLOB data.
SELECT clob_column FROM your_table;
3. Export the Data:

Right-click on the result set and choose the “Export” option.
Select “CSV” as the format and follow the prompts to save the data to a CSV file.

相关文章:

Oracle导出clob字段到csv

使用UTL_FILE ref: How to Export The Table with a CLOB Column Into a CSV File using UTL_FILE ?(Doc ID 1967617.1) --preapre data CREATE TABLE TESTCLOB(ID NUMBER, MYCLOB1 CLOB, MYCLOB2 CLOB ); INSERT INTO TESTCLOB(ID,MYCLOB1,MYCLOB2) VALUES(1,Sample row 11…...

C++无锁(lock free)队列moodycamel::ConcurrentQueue

moodycamel::ConcurrentQueue介绍 moodycamel::ConcurrentQueue一个用C++11实现的多生产者、多消费者无锁队列。 它具有以下特点: 1.快的让人大吃一惊,详见不同无锁队列之间的压测对比 2.单头文件实现,很容易集成到你的项目中 3.完全线程安全的无锁队列,支持任意线程数的并…...

python办公自动化——(二)替换PPT文档中图形数据-柱图

效果: 数据替换前 &#xff1a; 替换数据后&#xff1a; 实现代码 import collections.abc from pptx import Presentation from pptx.util import Cm,Pt import pyodbc import pandas as pd from pptx.chart.data impo…...

vue不同页面切换的方式(Vue动态组件)

v-if实现 <!--Calender.vue--> <template><a-calendar v-model:value"value" panelChange"onPanelChange" /></template> <script setup> import { ref } from vue; const value ref(); const onPanelChange (value, mod…...

Linux下Qt Creator无法输入中文(已解决)

1. 首先确保安装了搜狗输入法&#xff0c;且能正常运行。 2.克隆源码到本地。 git clone https://gitcode.com/fcitx/fcitx-qt5.git 3.检查Qt Creator版本&#xff0c;如下图所示&#xff0c;为基于Qt6的。 4. 进入源码目录&#xff0c;建立build文件夹&#xff0c;修改CMak…...

Codeforces 提交Java代码(自己处理输入输出)

示例一&#xff08;A. Watermelon&#xff09; 题目地址 Problem - 4A - Codeforces 题目截图 提交方式 可以提交本地文件&#xff0c;也可以在线提交。我们这里选择在线提交方式&#xff0c;点击上图中的 SUBMIT 按钮&#xff0c;会进入如下界面。 输入Java代码效果如下&a…...

剖析vue中nextTick源码

代码逻辑梳理&#xff1a; callbacks 数组用于存储待执行的回调函数&#xff0c;waiting 变量用于标记是否有待执行的回调函数。 flushCallbacks 函数用于执行所有存储在 callbacks 数组中的回调函数&#xff0c;并在执行完成后将 waiting 设置为 false。 timer 函数根据环境…...

SSM牙科诊所管理系统-计算机毕业设计源码98077

目 录 摘要 1 绪论 1.1研究目的与意义 1.2国内外研究现状 1.3ssm框架介绍 1.4论文结构与章节安排 2 牙科诊所管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能…...

【C++进阶】深入STL之string:模拟实现走进C++字符串的世界

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C模板入门 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀STL之string &#x1f4d2;1. string…...

go语言linux安装

下载&#xff1a;https://go.dev/dl/ 命令行使用 wget https://dl.google.com/go/go1.19.3.linux-amd64.tar.gz解压下载的压缩包&#xff0c;linux建议放在/opt目录下 我放在/home/ihan/go_sdk下 sudo tar -C /home/ihan/go_sdk -xzf go1.19.3.linux-amd64.tar.gz 这里的参数…...

vi和vim有什么不同?

vi 和 vim 都是流行的文本编辑器&#xff0c;它们之间有以下主要区别&#xff1a; 历史&#xff1a; vi 是一个非常古老的文本编辑器&#xff0c;最初由 Bill Joy 在 1976 年为 Unix 系统编写。vim&#xff08;Vi IMproved&#xff09;是 vi 的一个增强版&#xff0c;由 Bram M…...

CSS动画效果(鼠标滑过按钮动画)

1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa5SXiaicFfsrcric7TJmGO6YddqC4wFPdM7PGzPHuFgvtDS7MIvnLHB4WFaKia0Qh8VCyUaoyHMc2Zltg/640?wx_fmtgif&fromappmsg&tpwebp&wxfrom5&wx_lazy1&wx_co1 网页设计中的按钮不仅是用户交互的桥梁&#…...

数据结构(C):从初识堆到堆排序的实现

目录 &#x1f31e;0.前言 &#x1f688; 1.堆的概念 &#x1f688; 2.堆的实现 &#x1f69d;2.1堆向下调整算法 &#x1f69d;2.2堆的创建&#xff08;堆向下调整算法&#xff09; ✈️2.2.1 向下调整建堆时间复杂度 &#x1f69d;2.3堆向上调整算法 &#x1f69d;2.…...

ChatGLM3-6B部署

ZhipuAI/chatglm3-6b 模型文件地址 chatglm3-6B-32k-int4 量化的模型地址 ChatGLM3 代码仓库 ChatGLM3 技术文档 cpolar http xxx 端口 /anaconda3/envs/chatglm2/lib/python3.8/site-packages/gradio$ networking.py 硬件环境 最低要求&#xff1a; 为…...

代码随想录35期Day54-JavaScript

Day54题目 ### LeetCode739每日温度 核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的"下一个更大的元素". /*** param {number[]} temperatures* return {number[]}*/ var …...

把自己的服务器添加到presearch节点

Presearch is a scam. Before, judging by the price of the token you should have been able to get between $150-$200 after 12-13 months of regular searches. "If you use this service for the next 11 years you will have earned $30!" Presearch大约需要…...

Open3D(C++) OTSU点云二值化

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、二值化本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 最大类间方差法(Between-class scatter method)是一种用于分割的方法,它通过计算图…...

浔川python社获得全网博主原力月度排名泸州地区第二名!

今日&#xff0c;浔川python社在查看全网博主原力月度排名泸州地区时&#xff0c;一看就震惊啦&#xff01; 全网博主原力月度排名泸州地区排名榜单 全网博主原力月度排名泸州地区第二名为&#xff1a;浔川python社。 感谢粉丝们的支持&#xff01;浔川python社还会继续努力&a…...

第二站:Java——集合框架的深邃海洋(续)

### Java——集合框架的深邃海洋&#xff08;续&#xff09; 在我们的Java集合框架探索之旅中&#xff0c;我们已经涉足了基本操作、高级特性&#xff0c;现在让我们深入探讨一些特定场景下的应用和进阶技巧&#xff0c;比如集合的分区操作、分组、并行流的性能考量&#xff0…...

linux系统下,mysql增加用户

首先&#xff0c;在linux进入mysql mysql -u root -p 然后查看当前用户&#xff1a; select user,host from user; 增加用户语句&#xff1a; CREATE USER 用户名host范围 IDENTIFIED BY 密码;...

Docker化OpenOffice部署:文档自动化转换服务实战指南

1. 项目概述与核心价值最近在折腾一个老项目&#xff0c;需要处理一批.odt格式的文档&#xff0c;这让我想起了那个曾经在开源办公软件领域与微软Office分庭抗礼的“老将”——OpenOffice。虽然现在LibreOffice的风头更盛&#xff0c;但OpenOffice依然有其独特的生态位和用户群…...

Cursor IDE事件日志分析工具:Python实现开发者行为可视化与效率洞察

1. 项目概述&#xff1a;一个为开发者“把脉”的智能分析工具如果你是一名开发者&#xff0c;尤其是深度使用Cursor这类AI编程助手的开发者&#xff0c;你肯定有过这样的体验&#xff1a;面对一个复杂的项目&#xff0c;你向AI助手提了无数个问题&#xff0c;生成了大量代码片段…...

跨平台鼠标控制库ez-cursor-free:原理、实现与自动化实战

1. 项目概述与核心价值如果你是一名开发者&#xff0c;尤其是经常需要处理跨平台UI自动化、游戏脚本或者桌面应用交互的开发者&#xff0c;那么你一定对“鼠标控制”这个基础但又充满细节的环节感到过头疼。不同的操作系统&#xff08;Windows, macOS, Linux&#xff09;提供了…...

30亿条出行记录解密:如何用纽约出租车数据洞察城市脉搏 [特殊字符][特殊字符]

30亿条出行记录解密&#xff1a;如何用纽约出租车数据洞察城市脉搏 &#x1f696;&#x1f4ca; 【免费下载链接】nyc-taxi-data Import public NYC taxi and for-hire vehicle (Uber, Lyft) trip data into a PostgreSQL or ClickHouse database 项目地址: https://gitcode.…...

告别命令行启动!在Ubuntu 20.04上为Clion创建桌面快捷方式的保姆级教程

告别命令行启动&#xff01;在Ubuntu 20.04上为Clion创建桌面快捷方式的保姆级教程 每次打开Clion都要在终端输入./clion.sh&#xff1f;作为从Windows转战Linux的开发者&#xff0c;这种操作简直让人抓狂。本文将彻底解决这个痛点&#xff0c;手把手教你用.desktop文件创建专业…...

如何用Kafka-King轻松管理Kafka集群:5分钟上手完整指南

如何用Kafka-King轻松管理Kafka集群&#xff1a;5分钟上手完整指南 【免费下载链接】Kafka-King A modern and practical kafka GUI client &#x1f495;&#x1f389;Kafka-King 是一款现代化、实用的 Kafka GUI 客户端&#xff0c;旨在通过直观的桌面界面简化 Apache Kafka …...

【Midjourney极简艺术风格终极指南】:20年视觉设计专家亲授3大构图法则、5类禁用提示词与1套可复用Prompt模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;极简艺术风格的本质与Midjourney适配原理 极简艺术风格并非简单地“减少元素”&#xff0c;而是通过精准的留白、克制的色彩、几何化的形态与高度凝练的视觉语法&#xff0c;实现信息密度与情绪张力的平…...

深度学习训练理论:初始化与梯度消失

深度学习训练理论&#xff1a;初始化与梯度消失 1. 技术分析 1.1 训练挑战概述 深度学习训练面临多种挑战&#xff1a; 训练挑战梯度消失: 梯度趋近于0梯度爆炸: 梯度过大参数初始化: 权重初始化影响激活函数选择: 影响梯度流动1.2 梯度消失原因 原因机制影响激活函数sigmoid/t…...

告别3D-DNA的卡顿:用Chromap+Yahs快速搞定植物Hi-C辅助组装(附完整代码)

植物基因组Hi-C辅助组装新方案&#xff1a;ChromapYahs全流程解析 在植物基因组研究中&#xff0c;Hi-C技术已成为提升组装连续性的重要手段。然而传统3D-DNA流程在植物数据上的表现常令研究者头疼——运行速度缓慢、内存占用高&#xff0c;且对植物特有的重复序列处理效果欠佳…...

Arm Neoverse CMN-650架构解析与性能优化

1. Arm Neoverse CMN-650架构概览CMN-650是Arm Neoverse平台中的第三代一致性网格网络(Coherent Mesh Network)互连技术&#xff0c;专为高性能计算和数据中心场景设计。作为SoC内部的核心互连架构&#xff0c;它承担着连接处理器集群、内存控制器、I/O子系统以及加速器单元的关…...