spool常用的设置
set colsep' '; //域输出分隔符
set echo off; //显示start启动的脚本中的每个sql命令,缺省为on
set feedback off; //回显本次sql命令处理的记录条数,缺省为on
set heading off; //输出域标题,缺省为on
set pagesize 0; //输出每页行数,缺省为24,为了避免分页,可设定为0。
set termout off; //显示脚本中的命令的执行结果,缺省为on
set trimout on; //去除标准输出每行的拖尾空格,缺省为off
set trimspool on; //去除重定向(spool)输出每行的拖尾空格,缺省为off
注:LINESIZE要稍微设置大些,免得数据被截断, 它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果 LINESIZE设置太大,会大大降低导出的速度 。
通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本
set colsep '|' ------设置列分隔符
set trimspool on
set linesize 20000
set pagesize 0
set newpage 1
set heading off
set term off
spool 路径+文件名
select * from tablename;
spool off
方法二:采用以下脚本
set trimspool on
set linesize 20000
set pagesize 0
set newpage 1
set heading off
set term off
spool 路径+文件名
select col1 ||'|'|| col2 ||'|'|| col3 ||'|'|| col4 from tablename;
spool off
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,通过方法一导出来的数据具有很大的不确定性 ,这种方法导出来的数据再由sqlldr 导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右 。经这种方法导出来的数据文件再由sqlldr 导入时,出错的可能性很小,基本都可以导入成功。
因此,实践中建议大家使用方法二 手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
ksh脚本处理:
-
-
DB_USER=tivan
-
DB_PWD=tivan
-
DB_SERV=orcl
-
returnMessage=`sqlplus -s $DB_USER/$DB_PWD@$DB_SERV<<EOF
- whenever sqlerror exit 1
- whenever oserror exit 2
- set pagesize 0 feedback off verify off heading off
- set time off echo off
- set pagesize 0
- set linesize 2000
- set trims on
- set feedback off
- set TERMOUT OFF
-
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
- spool sp_test.txt
-
select PK_ID || '|' ||GRID_ID || '...' from tmp_jy_sys_table_col;
- spool off
- /
- exit 3;
- EOF`
分享到:
相关推荐
spool常用设置 oracle 导数据
将命令写入指定的文件 spool d:\b.sql 结束 spool off 7. 交互式命令 A.值前加& 回车 输入值将代替上一个值 8.显示和设置环境命令 设置一行显示多少字符:set linesize 90 查询显示的字符数:show linesize 设置...
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
4DISQL 常用命令 23 4.1帮助 HELP 23 4.2输出文件 SPOOL 23 4.3切换到操作系统命令 HOST 24 4.4获取对象结构信息 DESCRIBE 24 4.5定义本地变量 DEFINE 和 COLUMN 30 4.6查看执行计划 EXPLAIN 36 4.7设置异常处理方式...
SQL Plus是与oracle进行交互的客户端工具。在SQL Plus中,可以运行SQL Plus命令与SQL Plus语句。SQL Plus命令不被存入SQL缓冲区。... SQL Plus基本命令:desc命令、L命令、n命令、save命令、spool命令
可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_EDITOR=vi f、运行命令文件 SQL>START test SQL>@test 常用SQL*Plus语句 a、表的创建、修改、删除 创建表的...
1.连接数据库 普通用户连接数据库: ...超级管理员连接: Conn sys/sys as sysdba–oracle数据库不区分大小写 2.sql文件 保存sql文件 save c:\test.txt 编辑sql语句,用记事本编辑 ed c:\1.txt –编辑 SQL ...spool off –
入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
时不时地我们需要导出一些数据用作备份、查看报表等,如果用Sql Developer导出会非常慢。...spool /data/export.csv select t.name||','||t.age||','||t.salary||','||t.email||','||t.title from employee
下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的...
userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。...这与Linux系统”一切操作皆文件”的思想正好吻合。 ...如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令...常用参数:
实现SPOOL系统时必须在磁盘上辟出称为输入井和 输出井的专门区域,以存放作业信息 和作业执行结果。 虚拟存储器具有的主要特征为多次性、对换性和虚拟性。 8、按用途可以把文件分为系统文件、用户文件和 库文件三...
第一部分:常用命令 常用命令/文件处理 0:基础功能 1:ls 显示文件目录 语法:ls 选项[-ald][文件或目录] 2:cat 显示文件内容(内容少适合) 语法:cat[文件名] 3:tac 显示文件内容 语法:tac[文件名] 4:more 分页...
案例:sql>spool d:\b.sql 并输入 sql>spool off 4(交互式命令 (1), 说明:可以替代变量,而该变量在执行时,需要用户输入。如:sql>select * from emp where job=‘&job;’ 输入job是注意大小写 (2) edit 说明:该...
它通过从/etc/crontab和/var/spool/cron /etc/crontab常用位置解析crontab和anacrontab文件并生成systemd计时器和服务来工作。 您可以将cron.target用作生成单元的单个控制点。 它旨在替代所有cron实现。 基本原理...
在一般的系统实现中,都使用了2、3、4、5几个级别,在 Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式。7- 9级别也是可以使用的,...
SPOOL off /*终止SPOOL功能,关闭其文件。注意,此命令不可省,否则将建立空文件。 五、 实验内容 1、以cs+学号为用户名创建用户,并授予用户创建数据对象的权限。 2、复制emp表,复制表名为emp_学号,然后将emp表中...
§1.5.9 SPOOL将信息记录到文件中 35 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 36 §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 45 §1.8.2 简单select 查询 46 §...
学习oracle,首先我们必须要掌握常用的基本命令,oracle中的命令比较多,常用的命令如下: 1. 登录命令(sqlplus) 说明:用于登录到oracle数据库 用法:sqlplus 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户...
§1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前缓冲区的命令 36 §1.6 常用数据字典简介 37 §1.7 ORACLE数据类型 38 §1.8 SQL 语句基础 44 §1.8.1 SQL语句所用符号 44 §1.8.2 简单select 查询 45 §...