-*********************************************************************
--***
--***首先以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包对磁盘文件的读写操作
- 浏览: 2307071 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- JAVA基础知识 (54)
- Java-IO/FIle (16)
- Java-JDBC (4)
- JAVA-新增特性-注解 (3)
- Java-枚举 (2)
- Java-泛型 (1)
- Java-多线程 (15)
- Java-XML (4)
- Java-JMS(消息服务) (4)
- Java-JVM (0)
- Web Service服务 (7)
- Jsp (10)
- js (18)
- Struts框架 (11)
- Spring框架 (29)
- Hibernate框架 (28)
- Spring Boot框架 (2)
- ExtJS前端框架 (29)
- Jquery js库 (8)
- JUnit框架 (8)
- Selenium 测试 (1)
- NoSql---Redis (6)
- ORACLE数据库 (45)
- MySQL数据库 (4)
- tomcat (3)
- Nginx反向代理服务器 (4)
- web应用服务器通用知识 (3)
- 开发工具IDE (14)
- UML建模 (1)
- SVN CVS 版本管理 (6)
- git 分布式版本管理 (4)
- 报表设计 (5)
- 文件上传下载 (2)
- 数据算法 (1)
- 存储过程 (5)
- JSON 相关 (1)
- OGNL表达式 (3)
- Util工具包 (9)
- 设计模式 (15)
- linux 相关 (3)
- life think (3)
- 工作流管理框架 (1)
- 大数据-Hadoop (1)
最新评论
-
huih:
很不错的文章
SpringMVC+Hibernate+Spring 简单的一个整合实例 -
calm01:
学习了.
Spring <bean>标签属性 Autowire自动装配(转载) -
lizhenlzlz:
我的也是拦截不了service层
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)(转载) -
josh_123:
讲的不错,很详细,如果quartz定时任务类采用不继承任何类的 ...
Spring,jdk定时任务的几种实现以及任务线程是串行还是并行执行(转载) -
human_coder:
你知道eclipse调试怎么可以回调吗?有时候总是调快了,不能 ...
Debug---Eclipse断点调试基础
发表评论
-
oracle 动态执行命令execute immediate
2016-06-12 17:42 3453可以使用execute immediate来动态执SQL语 ... -
Oracle表与索引的分析及索引重建(转载)
2015-04-27 17:08 3312Oracle表与索引的分析及索引重建 2010年1 ... -
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结(转载)
2015-04-15 16:36 8343在web开发中,避免不了对日期的操作,就几种常见的日期操作 ... -
jdbc连接数据库使用sid和service_name的格式区别(转载)
2015-04-10 10:25 4001最近使用jdbc连接oracle时报错: ORA-1250 ... -
oracle 执行计划为什么不走hash join?(转载)
2015-04-07 14:34 5577今天,某省的同事来告诉我,表重组后,他用于统计的一个sql脚 ... -
详细介绍ORACLE sqlplus命令(转)
2015-04-03 10:05 2037一、ORACLE的启动和关闭1、在单机环境下要想启动或关 ... -
oracle sqlplus登陆命令(转载)
2015-04-03 09:59 4342oracle sqlplus登陆命令 首先,进入 ... -
Oracle ORA-01555快照过旧的错误(转载)
2015-02-25 16:31 3021第一篇文章: 首先 ... -
oracle创建分区表,以及非分区表转分区表(转载)
2015-01-22 17:14 3396什么是分区表,分区表详解:http://langgufu. ... -
oracle游标详解
2015-01-15 16:55 5208Oracle游标循环 第一种使用loop 循环 ... -
Oracle调优总结--2(经典实践 重要)
2014-11-24 15:43 1013Oracle SQL性能优化 (1 ... -
解读Oracle执行计划
2014-11-19 17:10 5149本篇解释执行计划中基本项的含义 关于生成和显示Oracle ... -
Oracle 执行计划(Explain Plan) 说明
2014-11-19 17:10 54596如果要分析某条SQL的性能问题,通常我们要先看SQL的执 ... -
oracle导出excel 方法总结
2014-11-19 11:38 8909oracle导出excel 一、oracle导出exce ... -
oracle translate()详解+实例(替换字符函数)+rpad()填充函数
2014-10-28 16:19 2409一、语法: TRANSLATE(string,from ... -
oracle根据已有表及数据创建表分区并导入数据
2014-10-21 17:05 62oracle根据已有表及数据创建表分区并导入数据 假 ... -
ORACLE 普通表转换成分区表(在线重定义方法详解 转载)
2014-10-21 17:01 5511什么是分区表,分区表详解:http://langguf ... -
Oracle中的不等于号(转)
2014-07-29 16:02 1207今天碰到一个Oracle不等 ... -
oracle 自定义类型 type / create or replace type (转载)
2014-07-17 15:21 16877<!--正文 begin--> 一: ... -
能使 Oracle 索引失效的七大限制条件
2014-01-27 16:21 3027Oracle 索引的目标是避免全表扫描,提高查询效率,但有些 ...
相关推荐
用户只需提供必要的连接信息和表字段名,就能自动批量导出BLOB字段中的图片。 总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点...
总的来说,通过结合JDBC和Apache POI,我们可以实现从Oracle数据库中提取表结构信息,并将其导出为Excel文件,以满足数据管理和共享的需求。这个过程中,需要注意处理可能的异常,优化性能,以及保持代码的可读性...
导出表字段数据通常涉及到以下几个步骤: 1. **选择数据库系统**:常见的关系型数据库系统有MySQL、PostgreSQL、Oracle、SQL Server和SQLite等。每种数据库都有自己特定的命令或工具来导出数据。例如,MySQL可以...
5. 了解目录对象的创建:在 Oracle 数据库迁移中,需要创建目录对象来存储导入导出过程中的数据文件及日志文件。 6. 了解权限授予:在 Oracle 数据库迁移中,需要授予目录对象的读写权限,以便进行数据导出和导入。...
标题中的“将excel文件用impexp32导入到oracle中.zip_ImpExp32_oracle_sql_txt”指的是一项操作,即将Excel数据导入到Oracle数据库中,使用了名为ImpExp32的工具,并且涉及到了SQL和文本文件的转换过程。这个过程...
在实际操作中,`control`文件是SQL*Loader的核心,它定义了数据文件中的字段与数据库表字段的对应关系、数据转换规则以及加载策略。例如,可以指定字段的分隔符、日期格式、空值处理等。通过精心编写控制文件,可以...
而“工具”则可能指的是数据库管理工具,如MySQL Workbench、Oracle SQL Developer等,这些工具提供了图形化的界面,使得用户可以更方便地执行SQL查询,查看表结构,甚至进行数据的导入导出。 提到的`oracle操作...
2. **列映射**:用户可以自定义XML文件中的元素与Oracle表字段之间的映射关系,确保数据导入到正确的数据库列中。 3. **数据过滤**:根据需要,用户可能可以选择导入部分数据,例如通过指定XML元素或条件。 4. **...
1. 数据类型匹配:确保Excel中的数据类型与数据库表字段类型相匹配,避免导入错误。 2. 错误处理:编写健壮的代码,处理可能出现的异常,如文件不存在、数据库连接失败等。 3. 安全性:保护敏感数据,避免在代码中硬...
5. **数据库对象管理**:包括对表、视图、索引、存储过程、触发器等数据库对象的创建、修改和删除操作,使得数据库的维护和设计工作更加简便。 6. **性能分析**:DbVisualizer具备执行计划分析和SQL性能调优功能,...
表空间是Oracle数据库中数据文件的逻辑容器。这部分内容可能会讨论如何创建和管理不同的表空间。 ### 26. 配置文件 (Profiles) 配置文件用于控制用户资源限制和密码管理。这部分可能涉及如何创建和修改配置文件。 ...
4. **数据映射**:定义Excel列与数据库表字段的映射关系。 5. **导入数据**:批量将Excel数据插入到数据库中,同时处理任何潜在的错误。 6. **导出数据**:从数据库查询所需数据,转换成Excel格式并保存到文件。 ...
这里,`userid`参数指定数据库登录信息,`control`参数指向控制文件,`bad`参数用于保存导入过程中遇到的错误记录,`data`参数指向数据文件。 二、文件操作专题:使用PL/SQL读取文件 在Oracle中,使用PL/SQL进行...
首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...
4. **数据映射**:如果Excel列名与SQL表字段名不一致,需要进行映射。此外,还要处理可能存在的主键、外键关系。 5. **数据验证**:导入后,检查数据是否完整无误,对比导入前后的数据量,检查是否有重复值或异常值...
在Excel中,你可以先选择要导入的数据范围,然后通过数据库的导入/导出向导,设置连接参数,选择导入模式(如追加、替换或更新),并映射Excel列与数据库表字段。 在"用EXCEL批量导入数据库.rar"这个压缩包中,可能...
- **功能描述**:用于快速访问数据字典,查看数据库中的表、索引、存储过程等对象。 - **操作便利性**:当点击某个数据库对象时,Toad能立即展示该对象的详细信息,如关联的索引、约束等,并以清晰的界面呈现。 - **...
- 数据类型匹配:确保源数据与DB2数据库表字段的数据类型一致,避免因类型不匹配导致的写入失败。 - 网络优化:由于数据迁移涉及大量网络传输,优化网络环境可以提高迁移速度。 - 性能调优:根据实际数据量和硬件...
7. 数据库设计:在导入前,需要考虑数据库的表结构设计,确保Excel数据与数据库表字段对应正确。 8. 同步更新:如果数据需要频繁更新,可以设置数据连接或者使用应用程序实现Excel与数据库的双向同步。 压缩包中的...
1. **表中的VARCHAR2字段存储了多字节字符**:如果某个字段的数据类型为VARCHAR2,并且其长度限制不足以完全容纳某些多字节字符(例如汉字),则可能导致数据截断。当尝试查询这些被截断的多字节字符时,Oracle...