在Oracle 9i中,sqlldr增加了一个新的参数external_table。通过这个参数的generate_only选项,可以生成完整的外部表创建语句。
现在有一个sqlldr控制文件,内容如下:
load data
infile 'd:\sqldr\test.txt'
badfile 'd:\sqldr\test.bad'
discardfile 'd:\sqldr\test.dis'
append into table test
fields terminated by X'09'
trailing nullcols
(
id,
name
)
利用如下命令行生成完整的外部表创建语句:
C:\>sqlldr test/test@acf control=d:\sqldr\test.ctl external_table=generate_only
在c:\根目录下找到test.log文件,这个文件包括了非常详细的内容,找到相应部分
用于外部表的 CREATE TABLE 语句:
------------------------------------------------------------------------
CREATE TABLE "SYS_SQLLDR_X_EXT_TEST"
(
"ID" NUMBER(38),
"NAME" VARCHAR2(10)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY TEST_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET ZHS16GBK
BADFILE 'TEST_DIR':'test.bad'
DISCARDFILE 'TEST_DIR':'test.dis'
LOGFILE 'test.log_xt' /*注意:这几个文件的路径不能有绝对路径,否则会抱错*/
READSIZE 1048576
FIELDS TERMINATED BY 0x'09' LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
"ID" CHAR(255)
TERMINATED BY 0x'09',
"NAME" CHAR(255)
TERMINATED BY 0x'09'
)
)
location
(
'test.txt'
)
)REJECT LIMIT UNLIMITED
这样就可以利用生成的语句创建外部表,运行上面的语句创建外部表
运行查询外部表以验证外部表创建是否成功!
select * from "SYS_SQLLDR_X_EXT_TEST"
结果如下:
ID NAME
1 a
2 b
3 c
4 d
5 e
6 f
至此,外部表创建完毕!!!
分享到:
相关推荐
综上所述,Oracle外部表为数据库用户提供了一种高效、灵活的方式来访问和管理非结构化或半结构化数据,同时提供了一系列实用的功能,如错误处理机制和并行处理能力,使其成为处理大量外部数据的强大工具。
综上所述,Oracle外部表的使用涉及到元数据的定义、外部数据文件的格式和内容、以及数据迁移工具ORACLE_DATAPUMP和SQLLDR的配置与使用。在实际操作中,还需注意数据库版本间的兼容性问题,以及操作系统和Oracle...
通过上述介绍,我们可以了解到Oracle数据库外部表是一种非常实用且高效的数据访问机制。它不仅能够显著提高数据加载的速度,还提供了极大的灵活性,使得用户可以在不移动数据的情况下轻松地对文件系统中的数据进行...
当前项目中,我们需要将一个外部接口返回的XML数据保存至三个不同的Oracle数据库表中(`table_test1`、`table_test2`、`table_test3`),以便后续业务流程能够快速访问这些数据。这里我们将重点介绍如何利用Oracle...
Oracle提供了几种方法将数据导入到表中,包括SQL*Loader、外部表和PL/SQL的BULK COLLECT INTO等。这里我们以SQL*Loader为例,它是Oracle提供的高效数据加载工具。 1. 创建控制文件:控制文件定义了数据文件的格式...
这里,Excel_to_Oracle是将Excel数据转换为Oracle临时表的步骤,这通常需要先通过工具将Excel数据导出为CSV格式,然后使用SQL*Loader或者外部表的方式导入Oracle。 通过这种方式,你可以使用提供的样本数据填充新建...
例:为test表增加一列Age,用来存放年龄 sql>alter table test add (Age number(3)); 修改基表列定义命令如下: ALTER TABLE 表名 MODIFY (列名 数据类型) 例:将test表中的Count列宽度加长为10个字符 sql>...
- 在本例中,使用TNSCMD脚本工具扫描并确定目标服务器的信息,包括操作系统类型(LINUX)、数据库版本(9.2.0.4.0)和数据库名(OSE)。 2. **利用默认账户** - 基于扫描到的信息,使用默认账户SCOTT连接数据库。...
以"ORA-01422"为例,这个错误通常发生在使用SELECT INTO语句时,如果查询返回多于一行的数据,就会触发这个错误。处理方法可能包括修改查询以确保只返回一行数据,或者使用BULK COLLECT INTO与FORALL语句进行批量...
Oracle定时导出,指的是在预设的时间点自动进行数据库或表空间的备份操作,以防止因硬件故障、软件错误或人为操作失误导致的数据丢失。通过定时导出,可以实现数据的周期性保存,为数据恢复提供有力支持,同时也便于...
Oracle 分页存储过程是数据库管理中的一个重要概念,它允许用户以特定的页面大小获取数据,而不是一次性获取所有数据,这有助于提高性能并减轻服务器负担。在Oracle中,可以通过创建存储过程来实现这一功能,尤其在...
Oracle数据库是全球范围内广泛使用的数据库管理系统之一,它支持复杂的数据管理需求,并能够处理海量数据。在Oracle 8i版本中,PL/SQL(Procedural Language extension to SQL)作为Oracle数据库服务器端的编程语言...
Oracle支持的操作系统验证有两种情况(以Windows NT为例): ① 被OS确认的DBA账户能够以用户名INTERNAL(或SYS)连接数据库而不用输入口令。实现方法是:首先,在OS的用户管理器中创建本地组ORA_sidDBA(sid表示...
在Oracle数据库中,有时我们需要调用外部程序来执行特定任务,比如在本例中的需求是:从Oracle数据库中导出大量数据,使用`sqluldr2`工具快速生成数据文件,然后利用`WinRAR`进行压缩,最后通过邮件发送。为实现这一...
Oracle到Access的数据迁移工具是一款实用程序,旨在帮助用户将Oracle数据库中的数据无缝迁移到Microsoft Access环境中。这个工具的独特之处在于它的独立性,因为其界面不依赖任何外部库,这意味着用户无需额外安装...
在日常的数据库管理工作中,经常需要将外部的文本数据导入到Oracle数据库中。本文将详细介绍几种常用的导入文本数据到Oracle的方法,包括在DOS环境下使用SQL*Loader命令、利用其他数据库的数据转移工具以及通过...
Oracle UML对象建模设计是数据库领域中一种重要...在压缩包文件"Oracle UML ╣∩╢H½╪╝╥│]¡p"中,可能包含了使用UML进行Oracle数据库设计的各种资源,如模型文件、教程或示例,帮助用户深入理解和应用这一技术。
以Dave Reinking在Anoka County Minnesota的实际应用为例,他提到:“SpaceManager with LiveReorg能够高效地管理Oracle数据库中的空间,显著提升了整体性能。”这证明了该工具在实际场景中的有效性。 ### 六、应用...
#### 一、创建数据库表结构 在Oracle或MySQL数据库中,表的设计和创建是数据库开发的基础。本例中,我们需创建两个表:`studentinfo` 和 `classinfo`。 1. **学生信息表** (`studentinfo`) - **字段说明** - `...