Oracle导出文本文件的三种方法(spool,UTL_FILE,sqluldr2)

一、spool

  1. spool的基本语法是
spool file_name
sql_command;
spool off

2.其中file_name指需要导出的文件名,可以是全路径也可以是部分路径,sql_command为需要执行的sql语句。

  1. 运行示例如下:
spool D:\test.txt                      /* 指定文件名 */
SELECT empno,ename,job,sal             /* 执行查询 */
FROM emp
WHERE deptno = 20;
spool off

二、UTL_FILE

  1. UTL_FILE是一种文件操作工具,可以用来读写文本文件,需要在数据库中创建一个directory来指定文本文件的路径。

  2. 创建directory的语法为:

CREATE DIRECTORY dir_name AS 'path';

其中dir_name为自定义的directory名,path为文件路径。

  1. 需要注意的是,directory创建完成后需要给其授权。

授权的语法为:

GRANT READ, WRITE ON DIRECTORY dir_name TO user_name;

其中user_name为被授权的用户。

  1. UTL_FILE的基本操作流程为:
1.在PL/SQL块中使用DIRHANDLE类型的变量打开文件;
2.使用PUT_LINE函数写入内容;
3.使用FCLOSE函数关闭文件。
  1. 运行示例如下:
CREATE DIRECTORY my_dir AS 'D:\';     /* 创建directory */
GRANT READ, WRITE ON DIRECTORY my_dir TO scott;  /* 授权 */

DECLARE
   file_handle UTL_FILE.FILE_TYPE;
BEGIN
   file_handle := UTL_FILE.FOPEN('MY_DIR', 'test', 'w');
   UTL_FILE.PUT_LINE(file_handle, 'This is a test.');
   UTL_FILE.FCLOSE(file_handle);
END;

三、sqluldr2

  1. sqluldr2是Oracle提供的一个导出工具,可以将数据导出为文本文件或二进制文件。

  2. 使用sqluldr2需要先安装,安装方式如下:

SQL> CONNECT / AS SYSDBA
SQL> @?/rdbms/admin/utluldr.sql
SQL> @?/rdbms/admin/utluldr.sql {parameter}
SQL> QUIT
  1. sqluldr2的基本命令如下:
sqluldr2 [userid=<username>/<password>] control=<filename>.ctl log=<filename>.log

其中username和password为数据库用户名和密码,control为控制文件名,log为日志文件名。

  1. 控制文件的格式为:
00010 LOAD DATA
00020 INFILE 'data.txt'
00030 BADFILE 'data.bad'
00040 DISCARDFILE 'data.dis'
00050 APPEND
00060 INTO TABLE emp
00070 ( empno INTEGER EXTERNAL(4),
00080 ename CHAR(10),
00090 job CHAR(9),
00100 mgr INTEGER EXTERNAL(4),
00110 hiredate DATE 'YYYY-MM-DD',
00120 sal DECIMAL(7,2),
00130 comm DECIMAL(7,2),
00140 deptno INTEGER EXTERNAL(2)
00150 )

其中INFILE指定需要导出的文件名,APPEND为数据导入方式,INTO TABLE指定目标表名和列信息。

  1. 运行示例如下:
sqluldr2 userid=scott/tiger control=my_control.ctl log=my_log.log

其中my_control.ctl指示控制文件的路径,my_log.log指示日志文件的路径。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle导出文本文件的三种方法(spool,UTL_FILE,sqluldr2) - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • asp常用函数集合,非常不错以后研究第3/4页

    首先,我假设你已经了解了ASP的基本知识,包括其工作原理和常用函数等。 在ASP中,有许多常用的函数来实现各种功能。这些函数非常实用,可以帮助我们更方便地开发ASP网站。 关于asp常用函数集合的攻略,我会分为以下几个部分来进行详细讲解: ASP常用函数集合的概述。 字符串相关的函数。 Len、Left、Right、Mid、Instr等函数。 示例:在字符串…

    database 2023年5月21日
    00
  • Zabbix6通过ODBC方式监控Oracle 19C的详细过程

    下面是对应的攻略: 准备 安装ODBC驱动 在Zabbix Server上安装ODBC驱动,例如UnixODBC驱动:yum install unixODBC unixODBC-devel 安装Oracle Instant Client 在Zabbix Server上安装 Oracle Instant Client,以供ODBC连接访问Oracle数据库:下…

    database 2023年5月22日
    00
  • redis源码分析3—结构体—字典

    字典,简单来说就是一种用于保存键值对的抽象数据结构; 注意,字典中每个键都是独一无二的;在redis中,内部的redis的数据库就是使用字典作为底层实现的;     1 字典的实现      在redis中,字典是使用哈希表作为底层实现的,一个hash表里面可以有多个hash表节点,而每个hash表节点就保存了字典中的一个键值对;   hash表定义 tab…

    Redis 2023年4月11日
    00
  • Redis 的 GEO 特性将在 Redis 3.2 版本释出

    Redis 的 GEO 特性将在 Redis 3.2 版本释出, 这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作。 本文将对 Redis 的 GEO 特性进行介绍, 说明这个特性相关命令的用户, 并在最后说明如何使用这些命令去实现“查找附近的人”以及“摇一摇”这两个功能。   版本要求 因为 Redis 目前的稳定版本为 Redis 3…

    Redis 2023年4月11日
    00
  • 使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤详解

    使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤如下: 1.安装 GBase 8s 驱动和 sqlalchemy-gbasedbt 在开始使用 sqlalchemy-gbasedbt 连接 GBase 8s 数据库之前,需要确保已经安装了 GBase 8s 驱动和 sqlalchemy-gbasedbt。 安装方式如下: # 安装 …

    database 2023年5月22日
    00
  • SQL检索所有行和列

    SQL是一种用于存储、管理和检索关系型数据库中信息的编程语言。为了检索数据库中的数据,需要进行查询操作。以下是SQL检索所有行和列的方法的完整攻略。 一、使用SELECT语句检索所有行和列 通过使用SELECT语句,可以检索表中的所有行和列。该语句由以下三个主要部分组成: SELECT:该关键字告诉数据库我们要检索数据。 *:通配符表示检索所有列。 FROM…

    database 2023年3月27日
    00
  • 解决SpringBoot中使用@Transactional注解遇到的问题

    当在Spring Boot应用程序中使用@Transactional注解时,会遇到以下问题: 事务未开启或未提交 这可能是由于没有启用事务管理器或事务管理器配置不正确导致的。在Spring Boot中,可以通过在application.properties或application.yml中添加以下配置来启用事务管理器: # 使用JDBC事务管理器 sprin…

    database 2023年5月21日
    00
  • 8种MySQL分页方法总结

    8种MySQL分页方法总结 在进行数据库查询时,经常会遇到需要分页显示结果的情况。MySQL提供了多种分页方法,本文将总结8种常用的MySQL分页方法,并给出示例说明。 1. LIMIT offset, num 此方法是MySQL最常用的分页方法。其中,offset表示从结果集的第几行开始返回结果,num表示返回的行数。 示例1: SELECT * FROM…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部