Oracle導入外部文件

一.使用PL/SQL的導入工具導入excel文件
1.打開pl/sql,點擊菜單欄中的T00LS->ODBC Imtorper,打開ODBC Importer選項框;
2.在Data fromODBC頁中選擇須要導入的文件的格式,選擇ExcelFiles.輸入用戶名密碼。而後點擊Connect;
3.在跳出的選擇工做簿對話框,選擇所要導入的Excel文件,點擊肯定;
在出現的Table/Query中的Import Table中單擊表名,能夠在下方的ResultPreview中看到所要導入的表格的內容;
4.點擊Date to Oracle按鈕,打開Date to Oracle選項框,選則你要導入的表名,
本次導入表爲SFISM4.U_RF_ID_DATA,在Owner下拉菜單中選SFISM4,在Table下拉菜單選擇U_RF_ID_DATA,在Fields選則你要導入的字段,本次導入的字段是SERIAL_NUMBER,點擊Import將成批數據導入Oracle數據庫中,這樣就完成了導入數據。

二.使用sqlldr導入txt文件
1.寫控制文件
load data
infile 'C:/Users/Administrator/Desktop/ctl.txt'
append into table test
fields terminated by '|'
(
SEQ,
NAME,
NAME_BUSI,
NAME_ACCOUNT,
ACCOUNT,
BANK_NAME
)sql

2.在dos窗口輸入命令
C:\Users\Administrator>sqlldr userid=username/passwd@sd control=C:\Users\Administrator\Desktop\sql.ctl,
(注:其中userid=用戶名/用戶密碼@數據庫實例的本地服務命名。)
在一開始運行這句話的時候,報錯:
SQL*Loader-704: 內部錯誤: ulconnect: OCIServerAttach [0]
ORA-12154: TNS: 沒法解析指定的鏈接標識符
後來發現有兩個tnsnames.ora文件,一個屬於oralceClient的,一個屬於oracleDataBase的,平時的數據庫實例本地配置都是寫在oralceClient
下的tnsnames.ora中,因而將oralceClient下的tnsnames.ora內容複製到oracleDataBase下的tnsnames.ora中,上述命令便運行成功了。
雖然導入成功了,可是導入的數據不完整,且中文亂碼。運行select * from nls_database_parameters和select * from nls_instance_parameters
發現nls_database_parameters中的字符集爲ZHS16GBK,而導入的txt文件字符集爲utf8,因而在Notepad++只能將txt文件轉換爲ANSI(GBK)編碼後,
即導入正確。

附:ANSI編碼
爲使計算機支持更多語言,一般使用 0x80~0xFFFF 範圍的 2 個字節來表示 1 個字符。好比:漢字 '中' 在
中文操做系統中,使用 [0xD6,0xD0] 這兩個字節存儲。
不一樣的國家和地區制定了不一樣的標準,由此產生了 GB23十二、GBK、GB18030、Big五、Shift_JIS 等各自的編碼標準。
這些使用多個字節來表明一個字符的各類漢字延伸編碼方式,稱爲 ANSI 編碼。
在簡體中文Windows操做系統中,ANSI 編碼表明 GBK 編碼;在繁體中文Windows操做系統中,ANSI編碼表明Big5;
在日文Windows操做系統中,ANSI 編碼表明 Shift_JIS 編碼。
不一樣 ANSI 編碼之間互不兼容,當信息在國際間交流時,沒法將屬於兩種語言的文字,存儲在同一段 ANSI 編碼的文本中。
ANSI編碼表示英文字符時用一個字節,表示中文用兩個或四個字節。

數據庫

相關文章
相關標籤/搜索