1、创建目录(create any directory):
SQL> create user Oracle identified by oracle;
用户已创建。
SQL> grant dba to oracle;
授权成功。
SQL> grant create any directory to oracle;
授权成功。
SQL> conn oracle/oracle
已连接。
2、创建外部表:
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
-------------------- ---------------------------------------- -------------------------------------------
--
SYS ADMIN_DIR C:\ADE\aime_vista_ship\oracle/md/admin
SYS DATA_PUMP_DIR d:\oracle\product\10.2.0\admin\orcl\dpdump\
SYS BDUMP D:\oracle\product\10.2.0\admin\orcl\bdump
SYS WORK_DIR C:\ADE\aime_vista_ship\oracle/work
SQL> create table alert_log(text varchar2(400))
2 organization external (
3 type oracle_loader
4 default directory BDUMP
5 access parameters(
6 records delimited by newline
7 nobadfile
8 nodiscardfile
9 nologfile
10 )
11 location('alert_orcl.log')
12 )
13 reject limit unlimited
14 /
表已创建。
SQL> select * from alert_log where rownum<10;
TEXT
------------------------------------------------------------------
Dump file d:\oracle\product\10.2.0\admin\orcl\bdump\alert_orcl.log
Sun May 16 11:25:15 2010
ORACLE V10.2.0.3.0 - Production vsnsta=0
vsnsql=14 vsnxtr=3
Windows NT Version V6.0
CPU : 2 - type 586
Process Affinity : 0x00000000
Memory (Avail/Total): Ph:372M/1021M
Sun May 16 11:25:15 2010
已选择9行。
3、外部表acess paramter获得方式
sqlldr oracle/oracle control=user.ctl external_table=generate_only
eg:
1、user.ctl(语法 可以使用EM DBCONSOLE生成) :
load
infile 'D:\oracle_file\data.txt'
badfile 'D:\oracle_file\data.bad'
discardfile 'D:\oracle_file\data.dis'
errors=50
append
into table user_data
fields terminated by ',' optionally enclosed by '"'
trailing nullcols
(user_name varchar2(20),
user_id number)
2、sqlldr oracle/oracle control=user.ctl external_table=generate_only log=user_data.log
你会在日志中发现:
文件需要 CREATE DIRECTORY 语句
------------------------------------------------------------------------
CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000 AS 'D:\oracle_file\'
用于外部表的 CREATE TABLE 语句:
------------------------------------------------------------------------
CREATE TABLE "SYS_SQLLDR_X_EXT_USER_DATA"
(
"USER_NAME" VARCHAR2(20),
"USER_ID" NUMBER
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET ZHS16GBK
BADFILE 'SYS_SQLLDR_XT_TMPDIR_00000':'data.bad'
DISCARDFILE 'SYS_SQLLDR_XT_TMPDIR_00000':'data.dis'
LOGFILE 'user_data.log_xt'
READSIZE 1048576
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
"USER_NAME" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"',
"USER_ID" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
)
)
location
(
'data.txt'
)
)REJECT LIMIT UNLIMITED
- 大小: 32.8 KB
分享到:
相关推荐
4. Oracle外部表支持多种数据访问类型,包括`ORACLE_LOADER`和`ORACLE_DATAPUMP`,选择合适的数据访问类型可以提高数据访问效率。 总之,Oracle外部表为处理大量外部数据提供了一种高效、灵活的方式,通过合理的...
在Oracle数据库中,外部表是一种特殊的表类型,它允许直接访问文件系统中的数据文件,而无需将这些数据加载到数据库中。这种方式既节省了存储空间,又提高了数据处理效率,尤其是在处理大量非结构化或半结构化数据时...
Oracle数据库的外部表是一种特殊类型的表,它不同于常规的数据库表,不存储数据在数据库的表空间中,而是引用操作系统上的数据文件,如文本文件或二进制文件。外部表在Oracle数据库中以元数据的形式存在,其结构和...
### Oracle数据库外部表详解 #### 一、外部表概述 **外部表(External Tables)**是Oracle数据库中一种特殊的数据存储方式,它允许用户通过普通的SQL查询操作来访问存储在数据库之外的数据文件中的数据。这种设计...
- **external_table**:使用外部表进行加载。这可以避免将数据实际存储在Oracle数据库中,而是将它们保留在文件系统上,从而节省空间。 #### 三、SQL Loader控制文件 控制文件是SQL Loader的核心组成部分之一,...
1. **位置与格式**:外部表位于文件系统中,通常是以特定格式分割的文本文件或其他类型的文件。常见的格式包括逗号分隔值(CSV)、制表符分隔值(TSV)等。 2. **访问方式**:可以直接通过SQL语句访问外部表,无需...
SQL_LOADER,也被称为SQL*Loader,是Oracle数据库系统中用于快速批量导入大量数据到数据库的一个强大工具。它可以从各种格式的外部数据文件中加载数据,例如文本文件、CSV文件等,大大提高了数据导入的效率。这个...
- `external_table`:使用外部表进行数据加载,默认为NOT_USED。 - `columnarrayrows`:直接路径模式下列数组中的行数,默认为5000行。 - `streamsize`:直接路径流缓冲区的大小,默认为256000字节。 - `...
SQL*Loader是通过读取外部数据文件,将数据加载到Oracle表中的一种工具。它支持多种格式的数据文件,如CSV、Fixed-width等,并且提供了丰富的控制文件选项,可以根据实际需求定制数据的解析和转换规则。在...
在Oracle数据库中,**外部表**是一种特殊类型的表,其数据存储于数据库之外,通常位于文件系统中。这使得用户能够在无需将数据导入数据库的情况下,直接使用SQL对这些数据进行查询。外部表为用户提供了一种高效、...
4. **数据导入**:Oracle提供多种工具和方法来导入数据,包括SQL*Loader、外部表、DBMS_LOB和PL/SQL等。SQL*Loader是最常用的一种,它可以从不同的文件格式快速批量加载大量数据。 5. **SQL*Loader操作步骤**: - ...
Oracle外部表支持两种类型的驱动:一种是ORACLE_LOADER,外部表的数据必须来源于文件文件,另一种则是ORACLE_DATAPUMP,外部表的数据必须是二进制dump文件,该dump文件是先前将Oracle内部表的数据导入到外部表中...
在Oracle数据库中,外部表(External Table)是一种特殊的表类型,它允许用户通过标准的SQL语句来查询存储在文件系统中的数据,而无需将这些数据加载到数据库内部。这种特性非常适合处理大数据集或临时数据,因为它...
3. **sqlldr (SQL*Loader)**: SQL*Loader是Oracle数据库的数据加载工具,可以从外部文件快速批量加载大量数据到数据库中。它支持各种数据格式,包括固定宽度、CSV、-delimited等,并能处理错误记录和数据转换。通过...
在Oracle 11g R2中,SQL Loader还提供了一些高级特性,例如自动类型检测、错误处理机制和直接路径加载。直接路径加载允许数据直接写入数据文件,跳过SGA,从而减少内存占用,提高导入速度。错误处理则允许在加载过程...
- **如何处理平面文件**:可以使用 SQL*Loader 或外部表来导入平面文件数据。 - **如何处理远程文件**:当需要从远程位置加载数据时,可以使用特定的连接方式或代理服务器。 - **如何处理名称不定的文件**:OWB 支持...
Oracle SQL*Loader是Oracle数据库提供的一个用于将外部数据加载到Oracle表中的工具。它是通过读取一个控制文件,然后加载指定的数据文件到数据库中。SQL*Loader支持多种数据加载方式,可以处理不同格式的数据文件,...
Oracle 19c支持四种类型的外部表:ORACLE_DATAPUMP、ORACLE_LOADER、ORACLE_HDFS和ORACLE_HIVE。其中,ORACLE_LOADER和ORACLE_DATAPUMP这两种外部表访问驱动需要特定的权限,包括对数据文件目录的读权限、日志文件...
Oracle SQL*Loader是一款强大的数据加载工具,用于快速将大量数据导入到Oracle数据库中。它能够从各种格式的外部文件中批量加载数据,极大地提高了数据库管理的效率。在本篇文章中,我们将深入探讨SQL*Loader的工作...
SQL*Loader 是 Oracle 数据库中用于批量导入外部数据至数据库的强大工具。它不仅具备与 DB2 Load 工具类似的功能,还提供了更为灵活的加载选项,包括支持多样的加载模式、选择性加载以及多表同时加载的能力。这使得 ...