oracle 如何把表导出csv

2024-03-18 19:32
文章标签 oracle 导出 csv 把表

本文主要是介绍oracle 如何把表导出csv,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CREATE  OR  REPLACE  PROCEDURE  SQL_TO_CSV
     (
         P_QUERY  IN  VARCHAR2,                         -- PLSQL文
         P_DIR  IN  VARCHAR2,                           -- 导出的文件放置目录
         P_FILENAME  IN  VARCHAR2                       -- CSV名
)
IS
         L_OUTPUT UTL_FILE.FILE_TYPE;
         L_THECURSOR  INTEGER  DEFAULT  DBMS_SQL.OPEN_CURSOR;
         L_COLUMNVALUE VARCHAR2(4000);
         L_STATUS  INTEGER ;
         L_COLCNT NUMBER := 0;
         L_SEPARATOR VARCHAR2(1);
         L_DESCTBL DBMS_SQL.DESC_TAB;
         P_MAX_LINESIZE NUMBER := 32000;
BEGIN
         --OPEN FILE
         L_OUTPUT := UTL_FILE.FOPEN(P_DIR, P_FILENAME, ‘W’, P_MAX_LINESIZE);
  
         --DEFINE DATE FORMAT
         EXECUTE  IMMEDIATE ‘ ALTER  SESSION  SET  NLS_DATE_FORMAT=’’YYYY-MM-DD HH24:MI:SS’’’;
  
         --OPEN CURSOR
         DBMS_SQL.PARSE( L_THECURSOR, P_QUERY, DBMS_SQL.NATIVE );
         DBMS_SQL.DESCRIBE_COLUMNS( L_THECURSOR, L_COLCNT, L_DESCTBL );
  
         --DUMP TABLE COLUMN NAME
         FOR  IN  1 .. L_COLCNT LOOP
             UTL_FILE.PUT( L_OUTPUT, L_SEPARATOR || ‘”’ || L_DESCTBL(I).COL_NAME || ‘”’ );
             DBMS_SQL.DEFINE_COLUMN( L_THECURSOR, I, L_COLUMNVALUE, 4000 );
             L_SEPARATOR := ‘,’;
         END  LOOP;
         UTL_FILE.NEW_LINE( L_OUTPUT );
  
         --EXECUTE THE QUERY STATEMENT
         L_STATUS := DBMS_SQL. EXECUTE (L_THECURSOR);
  
         --DUMP TABLE COLUMN VALUE
         WHILE ( DBMS_SQL.FETCH_ROWS(L_THECURSOR) > 0 ) LOOP
             L_SEPARATOR := ‘’;
             FOR  IN  1 .. L_COLCNT LOOP
                 DBMS_SQL.COLUMN_VALUE( L_THECURSOR, I, L_COLUMNVALUE );
                 UTL_FILE.PUT( L_OUTPUT, L_SEPARATOR || ‘”’ ||
                 TRIM(BOTH ‘ ‘  FROM  REPLACE (L_COLUMNVALUE,’”’,’””’)) || ‘”’);
                 L_SEPARATOR := ‘,’;
             END  LOOP;
             UTL_FILE.NEW_LINE( L_OUTPUT );
         END  LOOP;
  
         --CLOSE CURSOR
         DBMS_SQL.CLOSE_CURSOR(L_THECURSOR);
  
         --CLOSE FILE
         UTL_FILE.FCLOSE( L_OUTPUT );
EXCEPTION
         WHEN  OTHERS  THEN
         RAISE;
END ;

这篇关于oracle 如何把表导出csv的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823418

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结