日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
輕松入門(mén):Linux下SQLLDR使用技巧(linuxsqlldr使用)

SQLLDR是一種在Oracle數(shù)據(jù)庫(kù)中使用的數(shù)據(jù)加載工具,它可以將大量數(shù)據(jù)從文本文件導(dǎo)入數(shù)據(jù)庫(kù)表中。針對(duì)初學(xué)者,使用Linux系統(tǒng)下的SQLLDR工具可能會(huì)面對(duì)許多挑戰(zhàn)。本文旨在幫助初學(xué)者了解Linux下SQLLDR的基本使用技巧,解決在數(shù)據(jù)加載過(guò)程中可能會(huì)遇到的問(wèn)題。

一、為何選擇SQLLDR

在介紹SQLLDR使用技巧之前,我們有必要簡(jiǎn)單介紹一下SQLLDR的優(yōu)勢(shì)。與其他數(shù)據(jù)導(dǎo)入工具相比,SQLLDR有諸多優(yōu)點(diǎn):

1. 快速導(dǎo)入數(shù)據(jù):SQLLDR使得數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)更快、更高效,因?yàn)镾QLLDR是使用Oracle本地SQL語(yǔ)句進(jìn)行加載,它比其他工具使用SQL*Net協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)乃俣纫臁?/p>

2. 減少數(shù)據(jù)損失:SQLLDR能夠提供優(yōu)秀的容錯(cuò)機(jī)制,因此它可以將數(shù)據(jù)準(zhǔn)確地加載到Oracle表中并且減少錯(cuò)誤和數(shù)據(jù)損失。

3. 自動(dòng)化批量導(dǎo)入:SQLLDR工具支持批量導(dǎo)入數(shù)據(jù),這意味著您可以一次性加載大量數(shù)據(jù),而不必一次加載一個(gè)表。

二、SQLLDR使用規(guī)范

在學(xué)習(xí)SQLLDR使用時(shí),您需要了解SQLLDR的常規(guī)語(yǔ)法和規(guī)范,這些規(guī)范包括:

1. 文件擴(kuò)展名:SQLLDR只能導(dǎo)入文本類(lèi)型的數(shù)據(jù),你必須將需要導(dǎo)入的文件名后綴改為.txt或者.csv

2. 系統(tǒng)環(huán)境變量:在使用SQLLDR之前,一定要確保正確設(shè)置了系統(tǒng)環(huán)境變量——ORACLE_SID,該變量的值應(yīng)該是目標(biāo)Oracle數(shù)據(jù)庫(kù)的實(shí)例名。

3. 控制文件:SQLLDR運(yùn)行需要一個(gè)稱為「控制文件」的文件,我在下面將進(jìn)一步解釋該文件的作用以及如何編寫(xiě)控制文件

三、SQLLDR使用技巧

1. 編寫(xiě)控制文件

控制文件是負(fù)責(zé)指導(dǎo)SQLLDR如何進(jìn)行數(shù)據(jù)導(dǎo)入的文件??刂莆募且粋€(gè)包含指令的文本文件,它描述了要加載的數(shù)據(jù)的來(lái)源,目標(biāo)表和數(shù)據(jù)如何被加載到Oracle數(shù)據(jù)庫(kù)中。

以下是一個(gè)示例控制文件(test.ctl):

LOAD DATA

INFILE ‘/home/test.csv’

INTO TABLE test_table

FIELDS TERMINATED BY ‘,’

OPTIONAL ENCLOSED BY ‘”‘

TRLING NULLCOLS;

該文件指定了SQLLDR需要從test.csv文件中加載數(shù)據(jù),并將其加載到名為test_table的表中。該文件還指定了字段分隔符和一個(gè)可選的引號(hào)字符用于字符列的區(qū)分。 Trling NULLCOLS選項(xiàng)指定SQLLDR不會(huì)將控制文件中聲明的未列出的列作為默認(rèn)賦值NULL值的列。

2. 運(yùn)行SQLLDR

有了控制文件,就可以運(yùn)行SQLLDR來(lái)開(kāi)始加載數(shù)據(jù)了:

sqlldr userid=USERNAME/PASSWORD control=test.ctl

請(qǐng)注意,控制文件test.ctl必須在SQLLDR命令中指定。還要注意,與Oracle數(shù)據(jù)庫(kù)對(duì)話需要使用用戶名和密碼。

3. 處理錯(cuò)誤

遇到錯(cuò)誤時(shí),SQLLDR會(huì)生成一個(gè)錯(cuò)誤日志文件和一個(gè)拒絕文件。錯(cuò)誤日志文件包含了加載期間的錯(cuò)誤和警告信息,而拒絕文件包含了沒(méi)有正確加載到表中的數(shù)據(jù)行。

處理錯(cuò)誤的更好方式是使用錯(cuò)誤日志文件。標(biāo)準(zhǔn)后綴為.bad的錯(cuò)誤日志文件可能與控制文件位于相同的目錄中。如果您的SQLLDR命令未指定錯(cuò)誤日志文件名稱,它將采用默認(rèn)名稱。錯(cuò)誤日志文件中包含了相應(yīng)的錯(cuò)誤信息,我們可以使用Vi或Nano等文本編輯器進(jìn)行打開(kāi)。通過(guò)檢查這個(gè)文件,我們能夠了解哪些記錄未被正確加載以及失敗的原因。

四、

有了熟練運(yùn)用SQLLDR的技巧,您可以大大縮短大量數(shù)據(jù)導(dǎo)入的過(guò)程,并且保證數(shù)據(jù)的準(zhǔn)確性和完整性。通過(guò)本文簡(jiǎn)單的介紹,我相信您已經(jīng)對(duì)SQLLDR的基本使用有了一定的認(rèn)識(shí)。還有一些更高級(jí)的功能,比如控制文件語(yǔ)法和參數(shù)設(shè)置等等,但這已經(jīng)超出了初學(xué)者的范疇。希望您的使用SQLLDR愉快!

相關(guān)問(wèn)題拓展閱讀:

  • linux文件入庫(kù)
  • 請(qǐng)教SQL LOAD 中的“OPTIONAL ENCLOSED BY”

linux文件入庫(kù)

sqlldr hr/hr control=d:\test.ctl

test.ctl如下:

Load data

infile ‘d:\test.txt’

insert into table yourtable

fields terminated by X’09’

(key1,key2,key13,……key50)

或:

1、控制文件test.ctl的內(nèi)容

LOAD DATA

INFILE *

BADFILE ‘宏轎C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.BAD’

DISCARDFILE ‘C:\Documents and Settings\Jackey\桌面\WMCOUNTRY.DSC’

INSERT INTO TABLE 你的表名

Fields terminated by “;” Optionally enclosed by ‘”‘

(

key1,

key2,

key3,

key4,

這里你把所有的列補(bǔ)全。。。。

key50

)

BEGINDATA

“1”;”JP”;”Japan”;”;NULL;NULL;NULL;NULL;NULL;NULL;NULL

“2”;”ssss”;”Japan”;”;NULL;NULL;NULL;NULL;NULL;NULL;NULL

“3”;”fdsfsfs”;”fdfsfsf”;”;NULL;NULL;”ssss”搏絕姿;NULL;NULL;NULL

–反正上面寫(xiě)50列,寫(xiě)夠?;^

請(qǐng)教SQL LOAD 中的“OPTIONAL ENCLOSED BY”

1、準(zhǔn)備工作:創(chuàng)建需要導(dǎo)入數(shù)據(jù)的表結(jié)構(gòu),如果已有相關(guān)的表,此步省略!

  SQL> create table test

  2 (

hostVARCHAR2(30),

user_name VARCHAR2(30),

ip_address VARCHAR2(15),

passVARCHAR2(4) default ‘no’ not null,7 judgeNUMBER default 0 not null,8 endtimeDATE

  9 );

  表已創(chuàng)建。

  2、編寫(xiě)sqlload導(dǎo)入數(shù)據(jù)的控制文件,這里測(cè)試的控制文件如下,可以根據(jù)自己需要添加相關(guān)的控制參數(shù),測(cè)試的話復(fù)制保存為txt文件即可!

  LOAD DATA

  INFILE ‘d:\data.txt’

  INTO TABLE test

  TRUNCATE

  fields terminated by ‘,’

  trailing nullcols

  (HOST,USER_NAME,IP_AddrESS,PASS,JUDge,endTIME)控制文件還有其他參數(shù),根據(jù)自己需求調(diào)整和測(cè)試:

  附部分控制參數(shù):具體用法以官方文檔為準(zhǔn)

  OPTIONS (skip=1,rows=128) — sqlldr 命令顯示的選項(xiàng)可以寫(xiě)到這里邊來(lái),skip=1 用來(lái)跳過(guò)數(shù)據(jù)中的之一行LOAD DATA

  INFILE “users_data.csv”指定外部數(shù)據(jù)文件,可以是不同格式的數(shù)據(jù)文件,如csv、txt都支持可以寫(xiě)多個(gè) INFILE “another_data_file.csv” 指定多個(gè)數(shù)據(jù)文件truncate操作類(lèi)型,用 truncate table 來(lái)清除表中原有記錄,根據(jù)情況而定是否需要清楚原有表中數(shù)據(jù)INTO TABLE users-要插入記錄的表Fields terminated by “,”數(shù)據(jù)中每行記錄用 “,” 分隔Optionally enclosed by ‘”‘ –數(shù)據(jù)中每個(gè)字段用 ‘”‘ 框起,比如字段中有 “,” 分隔符時(shí)trailing nullcols表的字段沒(méi)有對(duì)灶冊(cè)應(yīng)的值時(shí)允許為空(

  virtual_column FILLER, –這是一個(gè)虛擬字段,用來(lái)跳過(guò)由 PL/隱芹宏SQL Developer 生成的之一列序號(hào)user_id number,字段可以指定類(lèi)型,否則認(rèn)為是 CHARACTER 類(lèi)型, log 文件中有顯示user_name,

  login_times,

  last_login DATE “-MM-DD HH24:MI:SS” — 指定接受日期的格式,相當(dāng)用 to_date() 函數(shù)轉(zhuǎn)換)

  insert為缺省方式,在首舉數(shù)據(jù)裝載開(kāi)始時(shí)要求表為空append –在表中追加新記錄

  replace –刪除舊記錄(用 delete from table 語(yǔ)句),替換成新裝載的記錄truncate –刪除舊記錄(用 truncate table 語(yǔ)句),替換成新裝載的記錄3、創(chuàng)建需要導(dǎo)入的數(shù)據(jù),注意數(shù)據(jù)格式必須和表結(jié)構(gòu)嚴(yán)格對(duì)應(yīng),否則導(dǎo)入失敗!測(cè)試數(shù)據(jù)如下:有部分?jǐn)?shù)據(jù)最后字段為空,所以控制文件中需要加trailing nullcols 參數(shù)!

  ttt,SCOTT,192.168.1.111,yes,1,

  ,JACK,192.168.1.20,no,1,

  ,TOM,192.168.1.20,no,1,

  WEB1,HAHA,192.168.1.1,no,1,

  XXX,ROBIN,111.111.111.111,no,1,08-AUG-08

  DB2,LUCY,192.168.10.10,no,1,

  ORACLE,LI,222.222.222.222,no,1,

  WORKGROUP,DENNIS,133.133.133.133,no,0,08-AUG-08DCR,CANDY,192.168.100.10,no,1,

  T3,F,192.168.10.33,no,1,

  T1,LINDA,192.168.10.200,no,1,08-AUG-08

  T2,LILEI,192.168.100.31,no,1,08-AUG-08

  4、導(dǎo)入數(shù)據(jù)-導(dǎo)入時(shí)也有相關(guān)的參數(shù)進(jìn)行控制

  附部分導(dǎo)入?yún)?shù):各參數(shù)可以再命令行下輸入sqlldr查看C:\Documents and Settings\Administrator>sqlldrSQL*Loader: Release 11.2.0.1.0 – Production on 星期三 2月 27 17:13:Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.

  用法: SQLLDR keyword=value

  有效的關(guān)鍵字:

  userid — ORACLE 用戶名/口令

  control — 控制文件名

  log — 日志文件名

  bad — 錯(cuò)誤文件名

  data — 數(shù)據(jù)文件名

  discard — 廢棄文件名

  discardmax — 允許廢棄的文件的數(shù)目(全部默認(rèn))skip — 要跳過(guò)的邏輯記錄的數(shù)目 (默認(rèn) 0)

  load — 要加載的邏輯記錄的數(shù)目 (全部默認(rèn))errors — 允許的錯(cuò)誤的數(shù)目(默認(rèn) 50)rows — 常規(guī)路徑綁定數(shù)組中或直接路徑保存數(shù)據(jù)間的行數(shù)(默認(rèn): 常規(guī)路徑 64, 所有直接路徑)

  bindsize — 常規(guī)路徑綁定數(shù)組的大小 (以字節(jié)計(jì)) (默認(rèn))silent — 運(yùn)行過(guò)程中隱藏消息 (標(biāo)題,反饋,錯(cuò)誤,廢棄,分區(qū))direct — 使用直接路徑(默認(rèn) FALSE)parfile — 參數(shù)文件: 包含參數(shù)說(shuō)明的文件的名稱parallel — 執(zhí)行并行加載 (默認(rèn) FALSE)file — 要從以下對(duì)象中分配區(qū)的文件

  skip_unusable_indexes — 不允許/允許使用無(wú)用的索引或索引分區(qū) (默認(rèn) FALSE)skip_index_maintenance — 沒(méi)有維護(hù)索引, 將受到影響的索引標(biāo)記為無(wú)用 (默認(rèn) FALSE)commit_discontinued — 提交加載中斷時(shí)已加載的行 (默認(rèn) FALSE)readsize — 讀取緩沖區(qū)的大小 (默認(rèn))external_table — 使用外部表進(jìn)行加載; NOT_USED, GENERATE_ON, EXECUTE (默認(rèn) NOT_USED)

  columnarrayrows — 直接路徑列數(shù)組的行數(shù) (默認(rèn) 5000)streamsize — 直接路徑流緩沖區(qū)的大小 (以字節(jié)計(jì)) (默認(rèn))multithreading — 在直接路徑中使用多線程

  resumable — 啟用或禁用當(dāng)前的可恢復(fù)會(huì)話 (默認(rèn) FALSE)resumable_name — 有助于標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串resumable_timeout — RESUMABLE 的等待時(shí)間 (以秒計(jì)) (默認(rèn) 7200)date_cache — 日期轉(zhuǎn)換高速緩存的大小 (以條目計(jì)) (默認(rèn) 1000)no_index_errors — 出現(xiàn)任何索引錯(cuò)誤時(shí)中止加載 (默認(rèn) FALSE)如下命令:control=指定控制文件和路徑 log=導(dǎo)入日志文件保存 bad=錯(cuò)誤信息 data=數(shù)據(jù)文件開(kāi)始導(dǎo)入:

  C:\Documents and Settings\Administrator>sqlldr scott/tiger control=d:\sqlload.txt log=d:\loadlog.txt bad=d:\bad.txt data=d:\data.txtSQL*Loader: Release 11.2.0.1.0 – Production on 星期三 2月 27 17:06:Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.

  達(dá)到提交點(diǎn) – 邏輯記錄計(jì)數(shù) 12

  導(dǎo)入成功后查看結(jié)果:

  C:\Documents and Settings\Administrator>sqlplus scott/tigerSQL*Plus: Release 11.2.0.1.0 Production on 星期三 2月 27 17:07:Copyright (c) 1982, 2023, Oracle. All rights reserved.

  連接到:

  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select * from test;

  HOSTUSER_NAME IP_ADDRESSPASSJUDGE ENDTIME—tttSCOTT.168.1.yes JACK.168.1.no TOM.168.1.no 1WEBHAHA.168.1.no 1DBLUCY.168.10. no 1ORACLE LI.222.222. no 1DCRCANDY.168.100. no 1TF.168.10. no 1已選擇8行。

  結(jié)果顯然與數(shù)據(jù)文件不一致,最后一個(gè)字段有值的數(shù)據(jù)沒(méi)有導(dǎo)入!這不是最后想要的結(jié)果!但可以確定已經(jīng)有數(shù)據(jù)導(dǎo)入,表示表對(duì)象和控制文件沒(méi)問(wèn)題!

  應(yīng)該是數(shù)據(jù)文件的格式問(wèn)題!注意數(shù)據(jù)文件最后一個(gè)字段是日期型數(shù)據(jù)。查看是不是數(shù)據(jù)庫(kù)現(xiàn)有日期類(lèi)型不支持?jǐn)?shù)據(jù)文件的表示格式SQL> select sysdate from dual;

  SYSDATE

  27-2月 -13

  顯然和我們數(shù)據(jù)文件的日期顯示不一致,且是中文,這里可以把數(shù)據(jù)文件的最后字段的數(shù)據(jù)改成和數(shù)據(jù)庫(kù)一樣的格式,也可以對(duì)數(shù)據(jù)庫(kù)的格式和語(yǔ)言進(jìn)行更改,因?yàn)闇y(cè)試系統(tǒng)是windows才會(huì)出現(xiàn)這個(gè)錯(cuò)誤,在linux可以避免!

  如果是linux 可以嘗試以下步驟解決:

  alter system set nls_date_format=’DD-MON-RR’;alter system set nls_language= american scope = spfile;得重啟數(shù)據(jù)庫(kù)這里由于是windows,這里就不更改語(yǔ)言和重啟數(shù)據(jù)庫(kù),直接對(duì)數(shù)據(jù)文件進(jìn)行更改,修改后的數(shù)據(jù)文件如下ttt,SCOTT,192.168.1.111,yes,1,

  ,JACK,192.168.1.20,no,1,

  ,TOM,192.168.1.20,no,1,

  WEB1,HAHA,192.168.1.1,no,1,

  XXX,ROBIN,111.111.111.111,no,1,08-5月 -08DB2,LUCY,192.168.10.10,no,1,

  ORACLE,LI,222.222.222.222,no,1,

  WORKGROUP,DENNIS,133.133.133.133,no,0,08-5月 -08DCR,CANDY,192.168.100.10,no,1,

  T3,F,192.168.10.33,no,1,

  T1,LINDA,192.168.10.200,no,1,08-5月 -08

  T2,LILEI,192.168.100.31,no,1,08-5月 -08

  再導(dǎo)入一次,導(dǎo)入后進(jìn)行查看結(jié)果

  C:\Documents and Settings\Administrator>sqlldr scott/tiger control=d:\sqlload.txt log=d:\loadlog.txt bad=d:\bad.txt data=d:\data.txtSQL*Loader: Release 11.2.0.1.0 – Production on 星期三 2月 27 17:48:Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.

  達(dá)到提交點(diǎn) – 邏輯記錄計(jì)數(shù) 12

  C:\Documents and Settings\Administrator>sqlplus scott/tigerSQL*Plus: Release 11.2.0.1.0 Production on 星期三 2月 27 17:49:Copyright (c) 1982, 2023, Oracle. All rights reserved.

  連接到:

  Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> col host for a10

  SQL> col user_name for a15

  SQL> select * from test;

  HOSTUSER_NAMEIP_ADDRESSPASSJUDGE ENDTIMEttt SCOTT.168.1.yes JACK2.168.1.no TOM92.168.1.no 1WEBHAHA2.168.1.no 1XXXROBIN.111.111.no月 -08DBLUCY2.168.10.no 1ORACLELI2.222.222.no 1WORKGROUP DENNIS.133.133. no月 -08DCRCANDY.168.100.no 1T F92.168.10.no 1TLINDA.168.10.no月 -08TLILEI.168.100.no月 -08已選擇12行。

關(guān)于linux sqlldr使用的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


分享名稱:輕松入門(mén):Linux下SQLLDR使用技巧(linuxsqlldr使用)
鏈接地址:http://www.5511xx.com/article/cdsjejj.html