Oracle 10G提供了一种方式可以使用外部表来抽取数据。首先需要一个directory目录(这里继续使用前面创建的目录)
- SQL> show user
- USER 为 "SYS"
- SQL> select * from dba_directories where DIRECTORY_NAME like "%SYS%";
-
- OWNER DIRECTORY_NAME DIRECTORY_PATH
- ------------------------------ ------------------------------ --------------------------------------------------
- SYS SYS_SQLLDR_XT_TMPDIR_00000 /u01/sqlldr
然后执行命令
- SQL> show user
- USER 为 "ING"
- SQL> desc SYS_SQLLDR_X_EXT_DEPT
- 名称 是否为空? 类型
- ----------------------------------------- -------- ----------------------------
- DEPTNO NUMBER(10)
- DNAME VARCHAR2(20)
- LOC VARCHAR2(20)
-
- SQL> create table SYS_SQLLDR_X_EXT_DEPT_UNLOAD
- 2 organization external
- 3 (type oracle_datapump
- 4 default directory SYS_SQLLDR_XT_TMPDIR_00000
- 5 location("SYS_SQLLDR_X_EXT_DEPT_UNLOAD.dat")
- 6 ) as
- 7 select * from SYS_SQLLDR_X_EXT_DEPT;
-
- 表已创建。
在数据库中会创建一个SYS_SQLLDR_X_EXT_DEPT_UNLOAD表,在目录中会多出两个文件
- [oracle@linux sqlldr]$ ll | grep SYS
- -rw-r--r-- 1 oracle oinstall 148 10-04 22:43 SYS_SQLLDR_X_EXT_DEPT_UNLOAD_3501.log
- -rw-r----- 1 oracle oinstall 12288 10-04 22:40 SYS_SQLLDR_X_EXT_DEPT_UNLOAD.dat
最后把SYS_SQLLDR_X_EXT_DEPT_UNLOAD.dat文件复制到其它数据库对应目录中,提取外部表创建脚本就可以拉
- SQL> set long 20000
- SQL> set pagesize 99
- SQL> select dbms_metadata.get_ddl("TABLE","SYS_SQLLDR_X_EXT_DEPT_UNLOAD") from dual;
-
- DBMS_METADATA.GET_DDL("TABLE","SYS_SQLLDR_X_EXT_DEPT_UNLOAD")
- --------------------------------------------------------------------------------
-
- CREATE TABLE "ING"."SYS_SQLLDR_X_EXT_DEPT_UNLOAD"
- ( "DEPTNO" NUMBER(10,0),
- "DNAME" VARCHAR2(20),
- "LOC" VARCHAR2(20)
- )
- ORGANIZATION EXTERNAL
- ( TYPE ORACLE_DATAPUMP
- DEFAULT DIRECTORY "SYS_SQLLDR_XT_TMPDIR_00000"
-
- LOCATION
- ( "SYS_SQLLDR_X_EXT_DEPT_UNLOAD.dat"
- )
- )
甚至可以从外包表中直接加载数据
- SQL> insert /*+ append */ into dept select * from SYS_SQLLDR_X_EXT_DEPT_UNLOAD;
-
- 已创建4行。
-
- SQL> commit;
-
- 提交完成。
-
- SQL> select * from dept;
-
- DEPTNO DNAME LOC
- ---------- -------------------- --------------------
- 50 Sales Virginia
- 60 Accounting Virginia
- 70 Consulting Virginia
- 80 Finance Virginia
Oracle外部表Oracle使用外部表访问告警日志文件相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)