`
lbxhappy
  • 浏览: 305918 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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  I  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  I  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 ;
/

--  创建存放文件的目录
CREATE   OR   REPLACE  DIRECTORY MYDIR  AS   ' C:\ ' ;


--  执行块
  begin

    sql_to_csv(
' select * from au_jxs  ' , ' MYDIR ' , ' EXAMPLE.CSV ' );

 
end ;
/

分享到:
评论

相关推荐

    oracle定时存储过程导出用户表或者指定表及数据导出CSV文件

    定时导出oracle指定用户下指定表的所有数据及格式生成CSV文件,通过存储过程; 1.使用特定用户或者system登陆到oracle执行"存储过程.txt"里面的脚本生成对应的存储过程; (说明:存储过程.txt脚本说明,查询指定用户下...

    oracle数据库的表数据导出为csv文件

    通过上述分析,我们可以了解到利用Oracle PL/SQL编写存储过程或函数来实现表数据导出为CSV文件的具体步骤。这种方式不仅能够提高工作效率,还能确保数据的安全性和准确性。此外,通过创建通用的函数还可以进一步提升...

    使用toad将csv数据导入oracle.rar

    通过这个教程,用户不仅学会了如何使用TOAD将CSV数据导入Oracle,还了解到数据导入过程中的注意事项和问题解决策略。这将极大地提升数据库管理和数据处理的效率,对于数据库管理员和开发者来说是非常实用的技能。...

    excel(.csv格式)导入oracle未完成

    本问题涉及的是将CSV格式的Excel数据导入Oracle数据库的过程,这是一个涉及到数据转换、数据清洗和数据库操作的重要环节。下面将详细解释这个过程中的关键知识点。 首先,CSV(Comma Separated Values)是一种通用...

    将CSV、EXCEL、TXT等文件的数据导入到oracle中

    CSV(Comma Separated Values)是一种通用的文本文件格式,用于存储表格数据。Oracle提供了多种工具来导入CSV文件,最常用的是SQL*Loader和SQL Developer。 1. SQL*Loader:这是Oracle提供的一个命令行工具,可以...

    ORACLE 表数据写成TXT文本,CVS等格式存储过程

    ### ORACLE 表数据导出至TXT或CSV格式的存储过程详解 #### 一、背景与目的 在数据库管理工作中,经常会遇到需要将Oracle表中的数据导出为其他格式(如TXT、CSV)的需求,特别是在进行数据分析或者与其他系统进行...

    aaa.rar_csv_java csv_oracle

    CSV(逗号分隔值)是一种常见的数据交换格式,通常用于存储表格数据,而Oracle数据库是企业级的关系型数据库管理系统。我们将探讨如何通过Java编程实现这一过程。 在描述中提到的"从文件(.csv或.txt)导入Oracle...

    Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法

    在Python编程中,有时我们需要将Oracle数据库中的数据导出到CSV文件中,以便于数据分析、存储或传输。这里我们将详细探讨如何使用cx_Oracle模块和csv模块来实现这个功能。 首先,cx_Oracle是Python中用于连接Oracle...

    PLSQL导入.csv文件.docx

    PLSQL 导入 CSV 文件是指使用 PLSQL 语言将 CSV 文件的数据导入到 Oracle 数据库中。 在 PLSQL 中导入 CSV 文件之前,需要首先将 Excel 文件保存为 CSV 格式。这是因为 CSV 文件是文本文件,可以轻松地被 PLSQL ...

    oracle 文本导入工具

    Oracle文本导入工具是一种实用程序,专门设计用于将TXT和CSV格式的数据文件批量导入到Oracle数据库中。这个工具是由开发者自己编写的,旨在简化数据导入过程,提高效率,并可能解决传统方法(如SQL*Loader或SQL命令...

    vc++操作Oracle数据库

    1. **Oracle数据库简介**:Oracle是一款关系型数据库管理系统,由甲骨文公司提供,广泛应用于大型企业的数据存储和管理。它提供了强大的数据处理能力和安全性。 2. **VC6.0环境设置**:首先,确保你的开发环境VC6.0...

    PLSQL导出CSV后中文乱码解决办法

    PLSQL(Procedural Language/SQL)是Oracle数据库系统中用于编写存储过程、函数、包等的编程语言,它提供了丰富的功能来处理和操作数据库中的数据。当需要将PLSQL查询结果导出为CSV(Comma Separated Values)格式时...

    java使用jdbc将数据库数据导出到csv文件.pdf

    然后,我们使用 Statement 对象来执行查询,并将结果存储在 ResultSet 对象中。 获取元数据信息 在执行查询后,我们需要获取元数据信息,包括列数、列名等信息。这可以通过 ResultSetMetaData 对象来实现。我们...

    csv生成代码.txt

    oracle存储过程生成csv文件,易学易懂,通过此方法能够学习到oracle文件流具体操作,对于能力提升有极大帮助。

    ORACLE库存快照创建和查询工具

    这个工具利用Oracle的存储过程功能,每天凌晨0点自动创建库存的快照,确保了库存数据的实时性和历史可追溯性。 首先,我们要理解什么是存储过程。存储过程是预编译的SQL语句集合,存储在数据库服务器中,可以被多次...

    向Oracle用户表中加载.csv 类型的Excel数据

    CSV(Comma Separated Values)是一种通用的、轻量级的数据交换格式,它以纯文本形式存储表格数据,广泛应用于数据导入导出操作。 首先,要完成这个任务,你需要确保已经安装了Oracle数据库客户端工具,例如SQL*...

    oracle和sqlserver数据迁移VB代码

    在IT行业中,数据库管理系统(DBMS)如Oracle和SQL Server是关键的数据存储和处理平台。在不同的业务场景下,有时我们需要将数据从一个数据库系统迁移到另一个,这通常涉及到数据的提取、转换和加载(ETL)过程。...

    oracle导出数据生成excel

    - 避免在批处理文件或脚本中明文存储数据库凭据,而是使用操作系统认证或连接字符串。 - 定期检查和更新批处理任务,以确保其依然符合业务需求。 通过这些方法,即使没有编程经验,你也能轻松地将Oracle数据库中...

    省市县数据库含access 如何转oracle

    这部分需要将Access的VBA代码转换为Oracle的PL/SQL代码,然后在Oracle中创建相应的触发器和存储过程。 8. 应用程序更新:最后,确保所有依赖Access数据库的应用程序已更新,指向新的Oracle数据库。这可能涉及更改...

Global site tag (gtag.js) - Google Analytics