CSV,全稱為Comma Separated Values,是一種將數據以逗號分隔的格式保存的文件類型。在日常生活中,常見的Excel表格也可以以CSV格式進行保存。針對CSV文件格式,Oracle提供了導入功能,可以將CSV文件中的數據批量導入到Oracle數據庫中。
首先,我們來看一個簡單的例子,假設我們有一份名為“test.csv”的文件,內容如下:
id,name,age
1,張三,20
2,李四,30
3,王五,40
4,趙六,50
要將這份文件中的數據導入到Oracle數據庫中,我們可以按照以下步驟進行:
- 新建一個表格,用于存儲導入的數據
- 使用SQL Loader工具創建控制文件
- 運行SQL Loader工具
- 查詢導入的數據
CREATE TABLE test_import (id NUMBER, name VARCHAR2(50), age NUMBER);
SQL Loader是Oracle提供的一個工具,可以用來批量將數據導入到Oracle數據庫中。在CMD命令行中輸入以下命令來啟動SQL Loader:
sqlldr username/password@database control=control_file_name.ctl log=log_file_name.log
其中,username是數據庫用戶名,password是密碼,database是數據庫實例名。control_file_name.ctl是我們要自己編寫的控制文件,log_file_name.log是日志文件名稱。
我們的CSV文件中,以逗號分隔,因此在控制文件中,需要聲明字段分隔符是逗號,還需要指定數據文件名稱和表格名稱:
LOAD DATA
INFILE 'test.csv' "STR ','"
INTO TABLE test_import
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(id, name, age)
其中,STR ','表示CSV數據文件分隔符是逗號,OPTIONALLY ENCLOSED BY '"'表示可選的數據內容包含在雙引號中,TRAILING NULLCOLS表示導入數據時,遇到沒有值的列直接跳過。
在CMD命令行中輸入以下命令,運行SQL Loader工具:
sqlldr username/password@database control=control_file_name.ctl log=log_file_name.log
運行成功后,控制臺會輸出提示信息,同時在指定的日志文件中也可以查看導入情況。
運行以下SQL語句,查詢導入的數據:
SELECT * FROM test_import;
除了SQL Loader外,Oracle還提供了其他的工具和方式來實現CSV導入功能。例如,通過PL/SQL或Java程序,使用Oracle提供的DBMS_FILE_TRANSFER包或UTL_FILE包等都可以實現CSV導入;還可以通過第三方工具,如ODI、Talend等來實現數據導入。
綜上所述,CSV導入到Oracle數據庫中是非常方便的。無論是使用SQL Loader還是其他工具,只需要編寫少量的代碼和控制文件,就可以實現大批量數據的導入,簡化了數據導入的流程,提高了開發效率。