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

【转】oracle存储过程导出表数据为TXT文件【全表字段】

 
阅读更多

-*********************************************************************
--***
--***首先以dba或者是其他具有create directory的用户创建directory,然后授权。这一步很重要,否则后面执行存储过程会报异常
--***
--*********************************************************************
CREATE OR REPLACE DIRECTORY dir_jiang AS 'd:\oracle';
GRANT READ,WRITE ON directory dir_jiang TO scott;

--*********************************************************************
--***
--***执行导出文本文件的存储过程:p_exp
--***p_tname:要导出的表明;p_query:where条件,根据这个条件导出,如果为null,则全表导出
--***
--***
--*********************************************************************
CREATE OR REPLACE procedure p_exp(p_tname varchar2,p_query varchar2)
AS
  v_line  varchar2(2000);                       --记录的数据
  v_sql    varchar2(2000);                      --动态sql变量
  v_fname  varchar2(40);                        --导出数据的文件名字
  cursor cursor_column                          --游标:通过数据字典查找出表有哪些字段
        IS SELECT column_name,data_type
        FROM user_tab_columns WHERE table_name=upper(p_tname);
  type type_cursor IS ref cursor ;
  mycursor type_cursor;
  outf utl_file.file_type;

BEGIN
  v_fname:=p_tname||'.txt';  ---此处的格式可以设置为.xls或是.doc格式的文件。
  FOR col IN cursor_column loop
    IF col.data_type='DATE' THEN
          v_sql:=v_sql||'to_char('||col.column_name||',''yyyy-mm-dd-hh24:mi:ss'')'||'||chr(9)||';
    ELSE
          v_sql:=v_sql||col.column_name||'||chr(9)||';
    END IF;
  END loop;
  v_sql:=rtrim(v_sql,'||chr(9)||');
  v_sql:='select '||v_sql||' from '||p_tname||' '||p_query;
  dbms_output.put_line(v_sql);
  outf:=utl_file.fopen('DIR_JIANG',v_fname,'w');
  open mycursor FOR v_sql;
  loop
    fetch mycursor INTO v_line;   
    exit when mycursor%notfound;
    utl_file.put_line(outf,v_line);
  END loop;
  utl_file.fclose(outf);
  dbms_output.put_line('导出成功');
END;原文地址:http://j2ee2009.javaeye.com/blog/677973 相关关键词搜索:oracle读写文件--利用utl_file包对磁盘文件的读写操作

分享到:
评论

相关推荐

    批量导出ORACLE数据库BLOB字段生成图片

    用户只需提供必要的连接信息和表字段名,就能自动批量导出BLOB字段中的图片。 总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点...

    oracle数据库表,字段信息导出为excel

    总的来说,通过结合JDBC和Apache POI,我们可以实现从Oracle数据库中提取表结构信息,并将其导出为Excel文件,以满足数据管理和共享的需求。这个过程中,需要注意处理可能的异常,优化性能,以及保持代码的可读性...

    不同数据库中表字段数据的导出

    导出表字段数据通常涉及到以下几个步骤: 1. **选择数据库系统**:常见的关系型数据库系统有MySQL、PostgreSQL、Oracle、SQL Server和SQLite等。每种数据库都有自己特定的命令或工具来导出数据。例如,MySQL可以...

    快速实现Oracle数据库大数据迁移方案

    5. 了解目录对象的创建:在 Oracle 数据库迁移中,需要创建目录对象来存储导入导出过程中的数据文件及日志文件。 6. 了解权限授予:在 Oracle 数据库迁移中,需要授予目录对象的读写权限,以便进行数据导出和导入。...

    将excel文件用impexp32导入到oracle中.zip_ImpExp32_oracle_sql_txt

    标题中的“将excel文件用impexp32导入到oracle中.zip_ImpExp32_oracle_sql_txt”指的是一项操作,即将Excel数据导入到Oracle数据库中,使用了名为ImpExp32的工具,并且涉及到了SQL和文本文件的转换过程。这个过程...

    oracle导入导出工具

    在实际操作中,`control`文件是SQL*Loader的核心,它定义了数据文件中的字段与数据库表字段的对应关系、数据转换规则以及加载策略。例如,可以指定字段的分隔符、日期格式、空值处理等。通过精心编写控制文件,可以...

    查询表字段

    而“工具”则可能指的是数据库管理工具,如MySQL Workbench、Oracle SQL Developer等,这些工具提供了图形化的界面,使得用户可以更方便地执行SQL查询,查看表结构,甚至进行数据的导入导出。 提到的`oracle操作...

    xml 导入 oracle 工具

    2. **列映射**:用户可以自定义XML文件中的元素与Oracle表字段之间的映射关系,确保数据导入到正确的数据库列中。 3. **数据过滤**:根据需要,用户可能可以选择导入部分数据,例如通过指定XML元素或条件。 4. **...

    excel导入导出数据库

    1. 数据类型匹配:确保Excel中的数据类型与数据库表字段类型相匹配,避免导入错误。 2. 错误处理:编写健壮的代码,处理可能出现的异常,如文件不存在、数据库连接失败等。 3. 安全性:保护敏感数据,避免在代码中硬...

    DbVisualizer

    5. **数据库对象管理**:包括对表、视图、索引、存储过程、触发器等数据库对象的创建、修改和删除操作,使得数据库的维护和设计工作更加简便。 6. **性能分析**:DbVisualizer具备执行计划分析和SQL性能调优功能,...

    Oracle ocp 052题库

    表空间是Oracle数据库中数据文件的逻辑容器。这部分内容可能会讨论如何创建和管理不同的表空间。 ### 26. 配置文件 (Profiles) 配置文件用于控制用户资源限制和密码管理。这部分可能涉及如何创建和修改配置文件。 ...

    C#开发的高性能EXCEL导入、导出工具

    4. **数据映射**:定义Excel列与数据库表字段的映射关系。 5. **导入数据**:批量将Excel数据插入到数据库中,同时处理任何潜在的错误。 6. **导出数据**:从数据库查询所需数据,转换成Excel格式并保存到文件。 ...

    Oracle高级应用

    这里,`userid`参数指定数据库登录信息,`control`参数指向控制文件,`bad`参数用于保存导入过程中遇到的错误记录,`data`参数指向数据文件。 二、文件操作专题:使用PL/SQL读取文件 在Oracle中,使用PL/SQL进行...

    根据表名及字段,自动生成insert,update,select语句

    首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...

    本地excel文件导入到sql中

    4. **数据映射**:如果Excel列名与SQL表字段名不一致,需要进行映射。此外,还要处理可能存在的主键、外键关系。 5. **数据验证**:导入后,检查数据是否完整无误,对比导入前后的数据量,检查是否有重复值或异常值...

    用EXCEL批量导入数据库.rar

    在Excel中,你可以先选择要导入的数据范围,然后通过数据库的导入/导出向导,设置连接参数,选择导入模式(如追加、替换或更新),并映射Excel列与数据库表字段。 在"用EXCEL批量导入数据库.rar"这个压缩包中,可能...

    Toad for Oracle工具的使用.docx

    - **功能描述**:用于快速访问数据字典,查看数据库中的表、索引、存储过程等对象。 - **操作便利性**:当点击某个数据库对象时,Toad能立即展示该对象的详细信息,如关联的索引、约束等,并以清晰的界面呈现。 - **...

    datax数据迁移插件-db2writer

    - 数据类型匹配:确保源数据与DB2数据库表字段的数据类型一致,避免因类型不匹配导致的写入失败。 - 网络优化:由于数据迁移涉及大量网络传输,优化网络环境可以提高迁移速度。 - 性能调优:根据实际数据量和硬件...

    Excel导入数据库常用工具

    7. 数据库设计:在导入前,需要考虑数据库的表结构设计,确保Excel数据与数据库表字段对应正确。 8. 同步更新:如果数据需要频繁更新,可以设置数据连接或者使用应用程序实现Excel与数据库的双向同步。 压缩包中的...

    如何处理错误ORA-29275:部分多字节字符

    1. **表中的VARCHAR2字段存储了多字节字符**:如果某个字段的数据类型为VARCHAR2,并且其长度限制不足以完全容纳某些多字节字符(例如汉字),则可能导致数据截断。当尝试查询这些被截断的多字节字符时,Oracle...

Global site tag (gtag.js) - Google Analytics