成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ORACLE 外部表

IT那活兒 / 1020人閱讀
ORACLE 外部表

點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


前期準(zhǔn)備

1.1 數(shù)據(jù)文件
字符 或者其他方式分隔的數(shù)據(jù)文件:
[oracle@host01]$ zcat ceshi.dat.gz
A,AA,1,11,AAA
B,BB,2,22,BBB
C,CC,3,33,CCC
D,DD,4,44,DDD
E,EE,5,55,EEE
F,FF,6,66,FFF
G,GG,7,77,ggg
1.2 解壓縮腳本

[oracle@host01]$ cat uncompress.sh
/bin/gunzip -c $1


編輯sqlldr控制文件

2.1 按數(shù)據(jù)文件的內(nèi)容建表
create table sh.ceshi(sname varchar2(2000),cname varchar2(2000),sno varchar2(2000),cno varchar2(2000));
2.2 編輯控制文件

[oracle@host01]$ cat ceshi.ctl
LOAD DATA
INFILE /home/oracle/scripts/ceshi.dat.gz
BADFILE /home/oracle/scripts/ceshi.bad
DISCARDFILE /home/oracle/scripts/ceshi.dsc
APPEND
INTO TABLE sh.prod_master
FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY "
TRAILING NULLCOLS
(sname, cname, sno, cno)


生成外部表語句

注:這里要使用sqlldr的一個參數(shù):generate_only:sqlldr并不執(zhí)行加載,而是生成創(chuàng)建外部表的sql和處理數(shù)據(jù)的sql,并保存在log文件中,用戶可以修改后拿到sqlplus中執(zhí)行。
3.1 使用sqlldr生成log文件
[oracle@host01 Skillset3]$ sqlldr sh/sh control=ceshi.ctl log=external.log external_table=generate_only
SQL*Loader: Release 12.1.0.2.0 - Production on Mon Sep 19 22:38:58 2022
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
Path used: External Table
3.2 查看log文件
[oracle@host01 Skillset3]$ cat external.log

SQL*Loader: Release 12.1.0.2.0 - Production on Mon Sep 19 22:38:58 2022

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

Control File: ceshi.ctl
Data File: /home/oracle/scripts/ceshi.dat.gz
Bad File: /home/oracle/scripts/ceshi.bad
Discard File: /home/oracle/scripts/ceshi.dsc
(Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Continuation: none specified
Path used: External Table

Table SH.CESHI, loaded from every logical record.
Insert option in effect for this table: APPEND
TRAILING NULLCOLS option in effect

Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
SNAME FIRST * , O(") CHARACTER
CNAME NEXT * , O("
) CHARACTER
SNO NEXT * , O(") CHARACTER
CNO NEXT * , O("
) CHARACTER



CREATE DIRECTORY statements needed for files
------------------------------------------------------------------------
CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_00002 AS /home/oracle/scripts/
CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000 AS
/home/oracle/scripts/


CREATE TABLE statement for external table:
------------------------------------------------------------------------
CREATE TABLE "SYS_SQLLDR_X_EXT_CESHI"
(
"SNAME" VARCHAR2(2000),
"CNAME" VARCHAR2(2000),
"SNO" VARCHAR2(2000),
"CNO" VARCHAR2(2000)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
BADFILE
SYS_SQLLDR_XT_TMPDIR_00000:ceshi.bad
DISCARDFILE
SYS_SQLLDR_XT_TMPDIR_00000:ceshi.dsc
LOGFILE
SYS_SQLLDR_XT_TMPDIR_00002:external.log_xt
READSIZE 1048576
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY
" LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
"
SNAME" CHAR(255)
TERMINATED BY "
," OPTIONALLY ENCLOSED BY ",
"CNAME" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY
",
"
SNO" CHAR(255)
TERMINATED BY "
," OPTIONALLY ENCLOSED BY ",
"CNO" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY
"
)
)
location
(
ceshi.dat.gz
)
)REJECT LIMIT UNLIMITED


INSERT statements used to load internal tables:
------------------------------------------------------------------------
INSERT /*+ append */ INTO SH.CESHI
(
SNAME,
CNAME,
SNO,
CNO
)
SELECT
"
SNAME",
"
CNAME",
"
SNO",
"
CNO"
FROM "
SYS_SQLLDR_X_EXT_CESHI"


statements to cleanup objects created by previous statements:
------------------------------------------------------------------------
DROP TABLE "
SYS_SQLLDR_X_EXT_CESHI"
DROP DIRECTORY SYS_SQLLDR_XT_TMPDIR_00002
DROP DIRECTORY SYS_SQLLDR_XT_TMPDIR_00000



Run began on Mon Sep 19 22:38:58 2022
Run ended on Mon Sep 19 22:38:58 2022

Elapsed time was: 00:00:00.16
CPU time was: 00:00:00.00
3.3 修改log文件

[oracle@host01 Skillset3]$ cat external.log
CREATE  TABLE sh.ceshi
(
"SNAME" VARCHAR2(2000),
"CNAME" VARCHAR2(2000),
"SNO" VARCHAR2(2000),
"CNO" VARCHAR2(2000)
)
ORGANIZATION external
(
TYPE oracle_loader
DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR_00002
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET AL32UTF8
PREPROCESSOR SYS_SQLLDR_XT_TMPDIR_00002:uncompress.sh
BADFILE SYS_SQLLDR_XT_TMPDIR_00002:ceshi.bad
DISCARDFILE SYS_SQLLDR_XT_TMPDIR_00002:ceshi.dsc
LOGFILE SYS_SQLLDR_XT_TMPDIR_00002:external.log_xt
READSIZE 1048576
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY " LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
"SNAME" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY ",
"CNAME" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY ",
"SNO" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY ",
"CNO" CHAR(255)
TERMINATED BY "," OPTIONALLY ENCLOSED BY "
)
)
location
(
ceshi.dat.gz
)
)REJECT LIMIT UNLIMITED;


建表

4.1 創(chuàng)建log文件中的目錄,并授權(quán)
CREATE DIRECTORY SYS_SQLLDR_XT_TMPDIR_00002 AS /home/oracle/scripts/;
grant read,write,execute on directory SYS_SQLLDR_XT_TMPDIR_00002 to public;
4.2 刪除之前創(chuàng)建的表
SH@PROD4 >drop table sh.ceshi;

Table dropped.
4.3 執(zhí)行l(wèi)og文件
SH@PROD4 >@external.log
Table created.

驗證

SH@PROD4 >set pages 200
SH@PROD4 >col sname for a20
SH@PROD4 >col cname for a20
SH@PROD4 >col sno for a20
SH@PROD4 >col cno for a20
SH@PROD4 >select * from ceshi;

SNAME CNAME SNO CNO
-------------------- -------------------- -------------------- --------------------
A AA 1       11
B BB 2       22
C CC 3       33
D DD 4       44
E EE 5       55
F FF 6       66
G GG 7       77

7 rows selected.
外部表創(chuàng)建成功(注意,外部表只可以做select操作。)


本文作者:章 贇(上海新炬王翦團(tuán)隊)

本文來源:“IT那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129166.html

相關(guān)文章

  • 如何將其他RDBMS的數(shù)據(jù)到遷移到Trafodion

    摘要:為了避免這種情況,可以針對表短期內(nèi)被兩個以上的語句所加載執(zhí)行一個大的數(shù)據(jù)壓縮。通常,對一張大表執(zhí)行數(shù)據(jù)壓縮會花費大量的時間幾分鐘到幾小時不等。 本文介紹了如何將數(shù)據(jù)從現(xiàn)有的RDBMS遷移到Trafodion數(shù)據(jù)庫。從其它的RDBMS或外部數(shù)據(jù)源向Trafodion集群中導(dǎo)入大量的重要數(shù)據(jù),可以通過下面兩步完美實現(xiàn): 在Trafodion集群中,將數(shù)據(jù)從源頭導(dǎo)入Hive表。使用下列方...

    weknow619 評論0 收藏0
  • 移動易開源APP組合套件更新——支持多種外部數(shù)據(jù)庫,支持全文搜索

    摘要:移動易后臺實現(xiàn)外部數(shù)據(jù)庫連接要實現(xiàn)外置數(shù)據(jù)庫,即上層開發(fā)人員不關(guān)心下層數(shù)據(jù)庫的實現(xiàn),在項目中需要針對不同數(shù)據(jù)庫修改文件以及在項目中添加依賴包。本文主要介紹移動易后臺如何實現(xiàn)同不同數(shù)據(jù)源的連接,數(shù)據(jù)源包括,。 1、移動易后臺實現(xiàn)外部數(shù)據(jù)庫連接 要實現(xiàn)外置數(shù)據(jù)庫,即上層開發(fā)人員不關(guān)心下層數(shù)據(jù)庫的實現(xiàn),在Spring boot項目 中需要針對不同數(shù)據(jù)庫修改application.proper...

    anyway 評論0 收藏0
  • (Create Table) 數(shù)據(jù)倉庫 UDW Doris

    摘要:數(shù)據(jù)排序使用的列數(shù),取最前面幾列,不能超過總的列數(shù)。示例創(chuàng)建一個動態(tài)分區(qū)表。創(chuàng)建外部表創(chuàng)建外部表在創(chuàng)建外部表的目的是可以通過訪問外部數(shù)據(jù)庫。創(chuàng)建表時,關(guān)于和的數(shù)量和數(shù)據(jù)量的建議。 建表(Create Table)創(chuàng)建表語法:CREATE TABLE [IF NOT EXISTS] [database.]table ( column_definition_list, [inde...

    ernest.wang 評論0 收藏1190
  • 阿里云如何打破Oracle遷移上云的壁壘

    摘要:摘要第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云數(shù)據(jù)庫產(chǎn)品專家蕭少聰帶來以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云數(shù)據(jù)庫產(chǎn)品專家蕭少聰帶來以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數(shù)據(jù)庫管理系統(tǒng),面對Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數(shù)據(jù)庫P...

    chavesgu 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<