我有一些與coulmns excel有關的數據,我需要將這些數據從excel遷移到Oracle中的某些表中。我如何以最佳和最快的方式實現這一目標? 我需要從Oracle單個Excel文件中加載5個表格。任何可用於此類任務的工具?這是做ETL工作的最好方法嗎?
-1
A
回答
1
方法可能如下。
說你有兩個表像這些
create table tabA (col_a number, col_b number);
create table tabB (col_b number, col_c varchar2(10));
,你需要加載數據從AA文件開始d:\ FILE.CSV這樣的:
col_a,col_b,col_c
10,99,"a"
20,999,"b c d"
首先需要創建一個目錄,然後建立一個包含CSV的表格:
CREATE DIRECTORY dir_d AS 'D:\';
CREATE TABLE csvFile
(
Col_a VARCHAR2(4000),
Col_b VARCHAR2(4000),
Col_c VARCHAR2(4000)
)
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY dir_d
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
SKIP 1
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LRTRIM
MISSING FIELD VALUES ARE NULL
)
LOCATION('file.csv'));
現在,您可以使用SQL從CSV表格開始在表格中插入數據,並使用您需要的每種邏輯;例如:
insert into tabA select col_a, col_b from csvFile;
insert into tabB select col_b, col_c from csvFile;
SQL> select * from tabA;
COL_A COL_B
---------- ----------
10 99
20 999
SQL> select * from tabB;
COL_B COL_C
---------- ----------
99 a
999 b c d
0
,如果你只是想將數據放到一個表,你可以使用的SQLDeveloper數據導入到表中,像秀這個tutorial:
0
Oracle的工具可以處理多表插入。如果您不希望構建適當的控制文件,可以先使用您選擇的工具將數據加載到臨時表中。
從臨時表,那麼你可以進行單獨的刀片,或使用conditional(?)muti table insert聲明:
insert all into table_a (cola, colb, colc) values (col_a, col_b, col_c)
into table_b (cola, colb, colc, cold) values (col_a, col_b, col_c col_d)
select col_a, col_b, col_c, col_d from staging_table;
或
insert all
when col_a < 1000 then
into table_a (cola, colb, colc) values (col_a, col_b, col_c)
when col_a between 900 and 10000 then
into table_b (cola, colb, colc, cold) values (col_a, col_b, col_c col_d)
else
into table_c (cola, colb, colc, cold) values (col_a, col_b, col_c col_d)
select col_a, col_b, col_c, col_d from staging_table;
與條件插入該評估每個WHEN子句爲true將導致數據被插入到指定的表中,只有當沒有其他選項適用時,ELSE子句纔會起作用。
相關問題
- 1. Express req.body爲空。這是做這件事的最好方法嗎?
- 2. 這是做這件事的最好方法嗎?
- 3. 這是做JS OOP的好方法嗎?
- 4. 這是最好的方法嗎?
- 5. 這樣做是「更好的方式」嗎?
- 6. 這是不好的做法嗎? C++
- 7. 這是不好的做法嗎?
- 8. Java錯誤處理 - 這是做這件事的最好方法嗎?
- 9. jqgrid - 工具欄文本 - 這是做這件事的好方法嗎?
- 10. 靜態方法get - 這是不好的做法嗎?
- 11. 這種布爾方法是不好的做法嗎?
- 12. 這是做這個TSQL計算的最有效方法嗎?
- 13. 。這是iPhone上的最佳做法嗎?
- 14. PHP中的嵌套操作符。這是不好的做法嗎?
- 15. Theres是做這種查詢的更好方法嗎?
- 16. 這是檢查DyanmoDB表是否存在的最好方法嗎?
- 17. 最好的方法是在cakephp中做到這一點
- 18. 在ASP.NET MVC3中做這件事的最好方法是什麼?
- 19. 在Python中這樣做的最好方法是什麼?
- 20. 這是不好的做法?
- 21. 這是不好的做法?
- 22. 這是使用mysql的好方法嗎?
- 23. 這是清理StringBuilder的好方法嗎?
- 24. 這是使用java.util.concurrent.FutureTask的好方法嗎?
- 25. 這是找到hcf的好方法嗎?
- 26. 這是使用MediaPlayer的好方法嗎?
- 27. 這是使用.post的好方法嗎?
- 28. 這是我最好的git工作流模型嗎?
- 29. 這是檢查isarray的最好方法
- 30. 它的工作原理。但這是否是最佳做法?
你試過搜索嗎? – Aleksej
[將Excel數據表加載到Oracle數據庫]可能的副本(http://stackoverflow.com/questions/120001/load-excel-data-sheet-to-oracle-database) – Aleksej
是啊...到處都是我看到的導入excel到oracle,但這不適用於我,因爲我需要將數據存儲在不同的表中。 – CodingFreak