load data
infile *
into table IMPUT_TAB
replace
fields terminated by ','
trailing nullcols
(deptno "case when :deptno <= 20 then 0 else 1 end",
dname ,
loc "upper(:loc)",--运用函数,使导入的数据变成大写字母
last_date date 'dd/mm/yyyy',--设置导入日期数据,并说明数据文件中的日期格式
entir_line ":deptno||:dname||:loc||:last_date",
seq sequence(1,1)--"MY_SEQUENCE.NEXTVAL"中MY_SEQUENCE为在数据库中创建的序列名称.
)
begindata
10,sales,vir,1/5/2000
20,account,virginia,21/6/1999
30,consulting,vig,5/1/2000
40,finance,vig,15/3/2001
/*
1.sequence(1,1)第一个1表示此方法从1开始,第二个1表示步伐。
2.对于第一个1,还可以更换成count,计算表中的记录数后,加1开始算sequence。
3.还有max,取表中该字段的最大值后加1开始计算sequence、
4.如果使用自己创建的sequence时(MY_SEQUENCE.NEXTVAL),目前在内联数据文件
中测试通过,不过在外部数据文件的情况下测试失败。
*/
对应的导入表的定义语句如下:
SQL> select dbms_metadata.get_ddl('TABLE','IMPUT_TAB') from dual;
CREATE TABLE "SCOTT"."IMPUT_TAB"
( "DEPTNO" VARCHAR2(10),
"DNAME" VARCHAR2(10),
"LOC" VARCHAR2(10),
"LAST_DATE" DATE,
"ENTIR_LINE" VARCHAR2(30),
"SEQ" NUMBER(20,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS";
/
说明:
通常在导入时没有运用函数时,
1.sqlldr构建的insert语句非常简单,拿上面例子拉说,其构建的insert语句是:insert into IMPUT_TAB(DEPTNO,DNAME,LOC,LAST_DATE,ENTIR_LINE,SEQ)values(:DEPTNO,:DNAME,:LOC,:LAST_DATE,:ENTIR_LINE,:SEQ);为这些列建绑定变量名。
2.然后sqlldr分析该输入流,并给绑定变量分配值,再执行该insert语句。
但当我们使用函数后的sqlldr将把它们与insert语句合并。在以上的例子中,sqlldr构建的insert语句是:
insert into IMPUT_TAB(DEPTNO,DNAME,LOC,LAST_DATE,ENTIR_LINE,SEQ)values(:DEPTNO,:DNAME,upper(:LOC),:LAST_DATE,:deptno||:dname||:loc||:last_date,:SEQ);
然后它将准备并绑定输入到该语句,并执行。
分享到:
相关推荐
《我的第一个SQL*Loader》 在数据库管理领域,SQL*Loader是Oracle数据库系统提供的一款强大的数据加载工具,用于...对于初学者来说,掌握SQL*Loader的基本用法和高级特性,能够极大地提升在数据库管理领域的专业技能。
虽然SQL*Loader的基本用法在两个系统中相似,但在执行命令时,路径分隔符和环境变量设置可能不同。在Linux上,通常使用`sqlldr`命令,而在Windows上则是`sqlldr.exe`。此外,文件路径需要适应各自的操作系统规范。 ...
在这个“sqlldr例子”中,我们将深入探讨如何使用这个工具,以及它在实际操作中的应用。 首先,SQL*Loader的工作原理是通过读取控制文件来确定数据文件的格式,并将数据解析、转换,然后加载到数据库表中。控制文件...
Oracle高级应用:数据库装载器与文件操作专题深度解析 一、数据库装载器应用实例 数据库装载器是Oracle提供的一种高效工具,用于将大量数据从文本文件导入到Oracle数据库中。这一过程不仅能够节省时间,还能确保...
Perl,全称为Practical Extraction and Report Language(实用摘录和报告语言),是由Larry Wall开发的一种高级编程语言,其最新版本为5.0版。Perl最初设计的目标是为了帮助UNIX用户处理那些对shell脚本来说过于复杂...
- 高级特性:对Oracle Database 10g的高级特性进行讲解,包括RAC、闪回技术、数据压缩和数据泵(Data Pump)导入导出等。 - 实战演练:通常会包含大量的案例分析和实践操作,让学习者能够通过实际操作来巩固和应用...
在实际应用中,`expdp` 和 `sqlldr` 经常配合使用,形成一个完整的数据迁移流程:先使用`expdp`导出数据到文件,然后利用`sqlldr`将数据快速加载到目标数据库。这种组合方法在处理大规模数据时能显著节省时间和资源...
当你在命令行输入`sqlldr`时,系统会显示帮助信息,其中包括了SQL*LOADER的基本用法和有效关键字列表。例如: ``` SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 11:06:42 2002 (c) Copyright 1999 ...
而Oracle则是一款企业级的、功能强大的DBMS,提供更高级的安全性、可扩展性和高级特性,适用于大型企业和关键任务应用。 迁移过程通常分为几个步骤: 1. **数据备份**:在开始迁移前,确保对MySQL数据库进行完整...
除了基本的数据导入,SQL*Loader还提供了许多高级特性,如错误处理、数据转换、约束检查等。例如,可以设置错误限制,当加载过程中达到一定错误数量时,停止加载;或者通过`DISCARDFILE`指定一个文件来记录未能成功...
在模型复杂性方面,机器学习、人工智能等高级分析模型的应用,使得数据处理的计算量呈指数级增长。这要求我们不仅要掌握传统的统计分析方法,还要了解并能够应用更加复杂的算法和模型,比如深度学习、图计算等。 在...
#### SQL Loader高级用法 - **FIELDSTERMINATEDBY WHITESPACE/X'09'**:当字段由空白或特定十六进制值分隔时使用。 - **位置指定**:如果不使用FIELDS TERMINATED BY,可以使用POSITION()函数来指定字段位置。 ###...
CSV(Comma Separated Values)是一种通用的、轻量级的数据交换格式,它以纯文本形式存储表格数据,广泛应用于数据导入导出操作。 首先,要完成这个任务,你需要确保已经安装了Oracle数据库客户端工具,例如SQL*...
#### 一、SQL Loader的特点与应用场景 Oracle SQL Loader作为Oracle数据库的一个重要组成部分,主要用于将外部数据加载到Oracle数据库中。与其他数据迁移工具相比,SQL Loader具有以下特点: - **跨平台兼容性**:...
- **高级安全性**:增强了访问控制、加密和审计功能,以满足严格的合规性要求。 - **集成云服务**:支持私有云和公有云部署,为混合云环境提供便利。 - **数据仓库优化**:引入了快速加载和压缩技术,提升了数据仓库...
4. **生成 sqlldr 控制文件**:能够生成用于将数据加载到另一个数据库中的 sqlldr 控制文件。 5. **性能调优选项**:提供更多的性能调优相关选项,提高数据处理效率。 6. **日志记录**:将消息写入日志文件,便于...
Oracle数据库是全球最广泛使用的商业关系数据库管理系统之一,尤其在企业级应用中占据主导地位。这份"Oracle傻瓜手册"可能是为了帮助初学者快速理解和掌握Oracle数据库系统而编写的,结合"Linux命令大全(修改版).chm...
### SQL*Loader 指南:语法与用法详解 #### 一、SQL*Loader简介 SQL*Loader是Oracle提供的一款高效数据加载工具,用于将外部文件中的数据批量加载到Oracle数据库表中。该工具支持多种文件格式,包括CSV、文本文件...
在IT领域,AIX(Advanced Interactive eXecutive)是一种由IBM开发的UNIX操作系统,主要应用于IBM的Power架构服务器。AIX 6.1是该系统的一个重要版本,提供了丰富的功能和增强的安全性。本篇文章将深入探讨AIX 6.1中...