文本中大概有几十万条记录,要求效率比较高
Dos ç¯å¢ä¸ä½¿ç¨SQl*Loaderå½ä»¤ å è½½
使ç¨å ¶å®æ°æ®åºçæ°æ®è½¬ç§»å·¥å ·
Oracle ä¼ä¸ç®¡çå¨ä¸çæ°æ®å è½½åè½
å ·ä½çææ¯å®ç°
ä¸ãDos ç¯å¢ä¸å è½½
1ãé¦å ï¼æå¡å¨ç«¯ç侦å¬æå¡å¿ 须已ç»å¼å¯ã
æµè¯æ¹æ³ï¼Dos ä¸è¾å ¥
C:\\>sqlplus username/password@serviceName
2ãç¶åä½¿ç¨ Oracle ç sqlldr å½ä»¤è¿è¡æ°æ®çå¯¼å ¥
åææ¡ä»¶
1ï¼ Oracle æ°æ®åºç«¯å¿ 须已ç»å»ºå¥½äºéè¦å¯¼å ¥çæ°æ®è¡¨çç»æ
2ï¼ ä¸ä¸ªæ°æ®æºæ件 ä¸é¢ä¾åä¸ä¸ºå¶è¡¨ç¬¦åéçææ¬æ件 model.txt ,为Excel 表ä¸å¯¼åºç
3ï¼ æå·¥ç¼è¾ä¸ä¸ªXXX.CTL çæ§å¶æ件
4ï¼ å½ä»¤è¡å è½½æ°æ®
å¦ä¸å®ä¾ï¼
以ä¸æ件缺çæ¾å°C:\\ ä¸ï¼å¦æä¸æ¯ï¼å°±éè¦ææå ¨è·¯å¾
1ï¼ å½ä»¤æ§å¶æ件 input.ctl å 容
å½ä»¤
说æ
load data
1ãæ§å¶æ件æ è¯
infile 'model.txt'
2ãè¦è¾å ¥çæ°æ®æ件å为test.txt
append into table system.å¡ä½å±æ§è¡¨
3ãå表testä¸è¿½å è®°å½
fields terminated by X'09'
4ãæå®åé符ï¼å段ç»æ¢äºX'09'ï¼æ¯ä¸ä¸ªå¶è¡¨ç¬¦ï¼TABï¼
(ç¼å·,å称,大å°)
5ãå®ä¹å对åºè¡¨ä¸é¡ºåº
æ§å¶æ件ä¸æå®æå ¥æ°æ®çæ¹å¼å ³é®å
insertï¼ä¸ºç¼ºçæ¹å¼ï¼å¨æ°æ®è£ è½½å¼å§æ¶è¦æ±è¡¨ä¸ºç©º
appendï¼å¨è¡¨ä¸è¿½å æ°è®°å½
replaceï¼å é¤æ§è®°å½ï¼æ¿æ¢ææ°è£ è½½çè®°å½
truncateï¼åä¸
å¨ Dos çªå£ä¸ä½¿ç¨ SQl*Loader å½ä»¤å®ç°æ°æ®çå¯¼å ¥
C:\\>sqlldr userid=system/manager@ serviceName control=input.ctl
é»è®¤æ¥å¿æ件å为ï¼input.log
é»è®¤åè®°å½æ件为ï¼input.bad
äºã使ç¨å ¶å®æ°æ®åºè½¬ç§»å·¥å ·
以ä¸ä»¥SQL Server å¯¼å ¥å¯¼åºå导为ä¾
1ãå¨æ°æ®çå¯¼å ¥å¯¼åºå导ä¸è®¾ç½®æ°æ®æºæå¡å¨ï¼å®ä¾ä¸éæ©æ°æ®æºéæ©SQL Server
2ãç¶åæå®è¦å¯¼å ¥çOracle æ°æ®æº
3ãéè¦é ç½®Oracle çå±æ§ä¿¡æ¯
éè¦æ³¨æçæ¯ï¼ç»å½æ°æ®åºçç¨æ·ä¿¡æ¯å³ä¸ºæ°æ®å¯¼å ¥ä¹åçæ¹æ¡åï¼å³å¯¼å ¥ä¹åçSQL Server ä¸ç表å¨Oracle ä¸æ å¿å为 username.表å
以ä¸æç §æ示å³å¯ï¼å¯ä»¥å®å ¨å¯¼å ¥SQl Server ä¸çæ°æ®è¡¨åè§å¾ï¼ä¹å¯ä»¥ä½¿ç¨æ¥è¯¢è¯å¥è¿åä½ è¦éæ©çåæè è¡ã
ä¸ãOracle ä¼ä¸ç®¡çå¨ä¸çæ°æ®å è½½åè½
ç»å½Oracle çæ§å¶å°çé¢ï¼é对åç¬çæ°æ®è¡¨å¯ä»¥ä½¿ç¨æ°æ®å è½½å·¥å ·
ä¸é´éè¦æå®æ§å¶æ件çï¼åDos å è½½ä¸è´ï¼ä¸åéå¤
使ç¨å ¶å®æ°æ®åºçæ°æ®è½¬ç§»å·¥å ·
Oracle ä¼ä¸ç®¡çå¨ä¸çæ°æ®å è½½åè½
å ·ä½çææ¯å®ç°
ä¸ãDos ç¯å¢ä¸å è½½
1ãé¦å ï¼æå¡å¨ç«¯ç侦å¬æå¡å¿ 须已ç»å¼å¯ã
æµè¯æ¹æ³ï¼Dos ä¸è¾å ¥
C:\\>sqlplus username/password@serviceName
2ãç¶åä½¿ç¨ Oracle ç sqlldr å½ä»¤è¿è¡æ°æ®çå¯¼å ¥
åææ¡ä»¶
1ï¼ Oracle æ°æ®åºç«¯å¿ 须已ç»å»ºå¥½äºéè¦å¯¼å ¥çæ°æ®è¡¨çç»æ
2ï¼ ä¸ä¸ªæ°æ®æºæ件 ä¸é¢ä¾åä¸ä¸ºå¶è¡¨ç¬¦åéçææ¬æ件 model.txt ,为Excel 表ä¸å¯¼åºç
3ï¼ æå·¥ç¼è¾ä¸ä¸ªXXX.CTL çæ§å¶æ件
4ï¼ å½ä»¤è¡å è½½æ°æ®
å¦ä¸å®ä¾ï¼
以ä¸æ件缺çæ¾å°C:\\ ä¸ï¼å¦æä¸æ¯ï¼å°±éè¦ææå ¨è·¯å¾
1ï¼ å½ä»¤æ§å¶æ件 input.ctl å 容
å½ä»¤
说æ
load data
1ãæ§å¶æ件æ è¯
infile 'model.txt'
2ãè¦è¾å ¥çæ°æ®æ件å为test.txt
append into table system.å¡ä½å±æ§è¡¨
3ãå表testä¸è¿½å è®°å½
fields terminated by X'09'
4ãæå®åé符ï¼å段ç»æ¢äºX'09'ï¼æ¯ä¸ä¸ªå¶è¡¨ç¬¦ï¼TABï¼
(ç¼å·,å称,大å°)
5ãå®ä¹å对åºè¡¨ä¸é¡ºåº
æ§å¶æ件ä¸æå®æå ¥æ°æ®çæ¹å¼å ³é®å
insertï¼ä¸ºç¼ºçæ¹å¼ï¼å¨æ°æ®è£ è½½å¼å§æ¶è¦æ±è¡¨ä¸ºç©º
appendï¼å¨è¡¨ä¸è¿½å æ°è®°å½
replaceï¼å é¤æ§è®°å½ï¼æ¿æ¢ææ°è£ è½½çè®°å½
truncateï¼åä¸
å¨ Dos çªå£ä¸ä½¿ç¨ SQl*Loader å½ä»¤å®ç°æ°æ®çå¯¼å ¥
C:\\>sqlldr userid=system/manager@ serviceName control=input.ctl
é»è®¤æ¥å¿æ件å为ï¼input.log
é»è®¤åè®°å½æ件为ï¼input.bad
äºã使ç¨å ¶å®æ°æ®åºè½¬ç§»å·¥å ·
以ä¸ä»¥SQL Server å¯¼å ¥å¯¼åºå导为ä¾
1ãå¨æ°æ®çå¯¼å ¥å¯¼åºå导ä¸è®¾ç½®æ°æ®æºæå¡å¨ï¼å®ä¾ä¸éæ©æ°æ®æºéæ©SQL Server
2ãç¶åæå®è¦å¯¼å ¥çOracle æ°æ®æº
3ãéè¦é ç½®Oracle çå±æ§ä¿¡æ¯
éè¦æ³¨æçæ¯ï¼ç»å½æ°æ®åºçç¨æ·ä¿¡æ¯å³ä¸ºæ°æ®å¯¼å ¥ä¹åçæ¹æ¡åï¼å³å¯¼å ¥ä¹åçSQL Server ä¸ç表å¨Oracle ä¸æ å¿å为 username.表å
以ä¸æç §æ示å³å¯ï¼å¯ä»¥å®å ¨å¯¼å ¥SQl Server ä¸çæ°æ®è¡¨åè§å¾ï¼ä¹å¯ä»¥ä½¿ç¨æ¥è¯¢è¯å¥è¿åä½ è¦éæ©çåæè è¡ã
ä¸ãOracle ä¼ä¸ç®¡çå¨ä¸çæ°æ®å è½½åè½
ç»å½Oracle çæ§å¶å°çé¢ï¼é对åç¬çæ°æ®è¡¨å¯ä»¥ä½¿ç¨æ°æ®å è½½å·¥å ·
ä¸é´éè¦æå®æ§å¶æ件çï¼åDos å è½½ä¸è´ï¼ä¸åéå¤
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-08-19
这么大的表最好在数据库里创建一张外部表,在数据库中保留表结构,在操作系统下保存表数据,一分钟的事,完全没必要用sql loader花大量时间导入,那样很影响性能,也会占用大量空间。语法类似于这样,你要指定文本在操作系统下的路径以及其他细粒信息,给个例子: create table extab_test3
(id number,name varchar2(20))
organization external
(type oracle_loader default directory dump_dir
access parameters
(records delimited by newline
badfile dump_dir:'empxt%a_%p.bad'
logfile dump_dir:'expxt%a_%p.log'
fields terminated by ','
missing field values are null
(id,name))
location ('empxt2.dat'))
(id number,name varchar2(20))
organization external
(type oracle_loader default directory dump_dir
access parameters
(records delimited by newline
badfile dump_dir:'empxt%a_%p.bad'
logfile dump_dir:'expxt%a_%p.log'
fields terminated by ','
missing field values are null
(id,name))
location ('empxt2.dat'))