導航:首頁 > 數據分析 > sqloracle如何導入數據

sqloracle如何導入數據

發布時間:2023-05-15 08:49:48

1. 簡述資料庫導入OracleSQL*Loader指南

SQL*Loader是Oracle資料庫導入外部數據的一個工具 它和DB 的Load工具相似 但有更多的選擇 它支持變化的載入模式 可選的載入及多表載入

如何使用 SQL*Loader 工具

我們可以用Oracle的sqlldr工具來導入數據 例如:

sqlldr scott/tiger control=loader ctl

控制文件(loader ctl) 將載入一個外部數據文件(含分隔符)loader ctl如下:

load data infile c:datamydata csv into table emp fields terminated by optionally enclosed by ( empno empname sal deptno )

mydata csv 如下:

Scott Tiger Frank Naude

下面是一個指定記錄長度的示例控制文件 * 代表數據文件與此文件同名 即在後面使用BEGINDATA段來標識數據

load data infile * replace into table departments ( dept position ( : ) char( ) deptname position ( : ) char( ) ) begindata COSC PUTER SCIENCE ENGL ENGLISH LITERATURE MATH MATHEMATICS POLY POLITICAL SCIENCE

Unloader這樣的工具

Oracle 沒有提供將數據導出到一個文件的工具 但是 我們可以用SQL*Plus的select 及 format 數據來輸出到一個文件

set echo off newpage space pagesize feed off head off trimspool on spool oradata txt select col || || col || || col from tab where col = XYZ ; spool off

另外 也歷孝可以使用使用 UTL_FILE PL/SQL 包處困虛理:

rem Remember to update initSID ora utl_file_dir= c:oradata parameter declare fp utl_file file_type; begin fp := utl_file fopen( c:oradata tab txt w ); utl_file putf(fp %s %s TextField ); utl_file fclose(fp); end; /

當然你也可以使用第三方工具 如SQLWays TOAD for Quest等

載入可變長度或指定長度的記錄

LOAD DATA INFILE * INTO TABLE load_delimited_data FIELDS TERMINATED BY OPTIONALLY ENCLOSED BY TRAILING NULLCOLS ( data data ) BEGINDATA AAAAAAAAAA A B C D 下面是導入固定位置(固定長度)數據示例 LOAD DATA INFILE * INTO TABLE load_positional_data ( data POSITION( : ) data POSITION( : ) ) BEGINDATA AAAAAAAAAA BBBBBBBBBB

跳過汪爛燃數據行 可以用 SKIP n 關鍵字來指定導入時可以跳過多少行數據 如

LOAD DATA INFILE * INTO TABLE load_positional_data SKIP ( data POSITION( : ) data POSITION( : ) ) BEGINDATA AAAAAAAAAA BBBBBBBBBB

導入數據時修改數據

在導入數據到資料庫時 可以修改數據 注意 這僅適合於常規導入 並不適合 direct導入方式 如

LOAD DATA INFILE * INTO TABLE modified_data ( rec_no my_db_sequence nextval region CONSTANT time_loaded to_char(SYSDATE HH :MI ) data POSITION( : ) :data / data POSITION( : ) upper(:data ) data POSITION( : ) to_date(:data YYMMDD ) ) BEGINDATA AAAAAAAAAA BBBBBBBBBB LOAD DATA INFILE mail_orders txt BADFILE bad_orders txt APPEND INTO TABLE mailing_list FIELDS TERMINATED BY ( addr city state zipcode mailing_addr decode(:mailing_addr null :addr :mailing_addr) mailing_city decode(:mailing_city null :city :mailing_city) mailing_state )

將數據導入多個表

如:

LOAD DATA INFILE * REPLACE INTO TABLE emp WHEN empno != ( empno POSITION( : ) INTEGER EXTERNAL ename POSITION( : ) CHAR deptno POSITION( : ) CHAR mgr POSITION( : ) INTEGER EXTERNAL ) INTO TABLE proj WHEN projno != ( projno POSITION( : ) INTEGER EXTERNAL empno POSITION( : ) INTEGER EXTERNAL )

導入選定的記錄

如下例 ( ) 代表第一個字元 ( : ) 代表 到 之間的字元:

LOAD DATA INFILE mydata dat BADFILE mydata bad DISCARDFILE mydata dis APPEND INTO TABLE my_selective_table WHEN ( ) <>; H and ( ) <>; T and ( : ) = ( region CONSTANT service_key POSITION( : ) INTEGER EXTERNAL call_b_no POSITION( : ) CHAR )

導入時跳過某些欄位

可用 POSTION(x:y) 來分隔數據在Oracle i中可以通過指定FILLER欄位實現 FILLER 欄位用來跳過 忽略導入數據文件中的欄位 如

LOAD DATA TRUNCATE INTO TABLE T FIELDS TERMINATED BY ( field field FILLER field )

導入多行記錄

可以使用下面兩個選項之一來實現將多行數據導入為一個記錄:

CONCATENATE: use when SQL*Loader should bine the same number of physical records together to form one logical record CONTINUEIF use if a condition indicates that multiple records should be treated as oneEgby having a # character in column

SQL*Loader 數據的提交

一般情況下是在導入數據文件數據後提交的 也可以通過指定 ROWS= 參數來指定每次提交記錄數

提高 SQL*Loader的性能

( ) 一個簡單而容易忽略的問題是 沒有對導入的表使用任何索引和/或約束(主鍵) 如果這樣做 甚至在使用ROWS=參數時 會很明顯降低資料庫導入性能

( ) 可以添加 DIRECT=TRUE來提高導入數據的性能 當然 在很多情況下 不能使用此參數

( ) 通過指定UNRECOVERABLE選項 可以關閉資料庫的日誌 這個選項只能和 direct 一起使用

( ) 可以同時運行多個導入任務

常規導入與direct導入方式的區別

lishixin/Article/program/Oracle/201311/18244

2. sql文件怎麼導入到Oracle資料庫


在sqlplus運行後。
先連接上資料庫

然後使用

@sql文件名.sql

(註:該sql文件,需要在當前目錄下)
如果需要在cmd的批處理的方式下,運行外部SQL文件的話。
可以通過加命令行參數的方式來實現。


test.sql文件內容如下:


createtabletest_sqlplus(
id int,
val varchar(10)
);
INSERTINTOtest_sqlplusVALUES(1,'A');
INSERTINTOtest_sqlplusVALUES(2,'B');
COMMIT;
EXITE:Temp>sqlplustest/test@[email protected]
SQL*Plus:Release9.2.0.1.0-Proctionon星期五4月2612:37:122013
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
連接到:
.2.0.1.0-Proction
表已創建。
已創建1行。
已創建1行。
提交完成。
從.2.0.1.0-Proction中斷開
E:Temp>

3. 怎麼使用plsql中的oracle導入方法導入數據數據

一般導入方法是把備份的dmp文件通過plsql導入到資料庫中。方法如下:
1、登錄要導入的用戶到plsql(一般為新用戶謹正,且有dba等許可權),如果沒有許可權,在system用戶下執行下邊語句:
grant connect,resource,dba to 用戶名;

2、登陸後,依次點擊「工具」-「導入表」

3、上方選擇「oracle導入」,下方根據自己條件勾選必要嘩晌肆的選項,然後點擊文件夾樣式的圖標,選擇自己的dmp文件,選擇好文件以後,點擊「導入」按鈕,等待執行完畢即可亂轎。

4. sql oracle怎麼導入數據

在我們使用SQL Server資料庫的過程中,有時需要將SQL Server數據導出,導入到其他的資料庫中,比如導入到Oracle中。

假設要將SQL Server中的Northwind資料庫中的Procts表導出到Oracle的Scott用戶

團山旅首先需要有安裝SQL Server企業版

1.打開工具:

開始->程序->

導入和SQL Server數據導出數據

2.下一步,選擇數據源

[數據源]選擇「用於SQL Server的Microsoft OLE DB提供程序」,這應該是預設值。

[伺服器]選擇要導出數據的伺服器唯謹,如果是本機,選擇(local)

[資料庫]選擇要導出的數據所在的庫,這里選擇Northwind

3.下一步,選擇目的

[目的]選擇Microsoft ODBC for Oracle

[DSN]選擇用戶/系統DSN一項,然後在下拉列表框中找一個已經連接到了Scott用戶的DSN名稱。

如果下拉列表中沒有,點下拉列表框右側的[新建],出現創建新數據源界面。

接下來選擇系統數據源,下一步,在驅動程序列表中選擇Microsoft ODBC for Oracle

下一步,完成,出現Microsoft ODBC for Oracle安裝界面

[數據源名稱]隨便輸入,比如sss

[說明]可以不填

[用戶名稱]填入要SQL Server數據導出到的Oracle用戶名稱,這里是scott

[伺服器]填入要連接到Oracle伺服器所使用的服務名,比方說使用sqlplus scott/tiger@server1可以連接到資料庫,那麼這里就填入server1。如果本機就是伺服器,使用sqlplus scott/tiger即可連接到資料庫,這里空著不填即可。

這樣就創建好了一個數據源sss,保證下拉列表框中選擇了sss一項。

[用戶名]填入SQL Server數據導出到的Oracle用戶名稱,這里是scott

[密碼]填入SQL Server數據導出到的Oracle用戶使用的密碼,這里是tiger

4.下一步,指定表復制或查詢

如果要導出的內容是整個表,選擇[從源資料庫復製表和視圖]

如果要導出的內容是表的一部分列,行,可以選擇[用一條查詢指定要傳輸的數據],這時需要寫出一個查詢語句

這里選擇第一項[從源資料庫復製表和視圖]

5.下一步,選擇源表和視圖

點中要導出的表Procts一行的復選框,目的、轉換兩欄就會出現內容。

目的可以用來選擇表名。轉換可以用來修改列的數據類型或是整個建表的SQL語句

6.下一步,保存、調度和復制包

選中立即運行

7.下一步,正在完成DTS導入/導出向導

8.完成

提示「成功地將n個表從Microsoft SQLServer復制到了Oracle」

9.完成,關閉導入導出程序

注意:因為oracle的表名都是大寫的,而SQL的表可能是大小混寫的,所以導入後在oracle里查不到該表,比如這個Procts表在oracle里查詢就應該寫成select * from scott."Procts";為了方便查詢可以通過批量修改表名為大寫以便後面導數據的工作。

---導完數據後執行下面語句,生成把表名修改成大寫的操作

select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '|| upper(table_name)||';' from user_tab_comments;

把生成的文件執行即可把此用戶塌凳下的所有表名修改成大寫。

5. oracle怎樣導入資料庫

方法一:利用PL/SQL Developer工具導出:
菜單欄---->Tools---->Export Tables,如下圖,設置相關參數即可:
方法二:利用cmd的操作命令導出,詳情如下:
1:G:\Oracle\proct\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora文件,內容如下:
復制代碼 代碼如下:
CMSTAR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = cmstar)
)
)
其中:CMSTAR為資料庫名,HOST為IP地址,所以可以仿效上面的例子手動添加數據錄連接。
2:用cmd進入命令行
輸入:tnsping cmstar
就是測試172.18.13.200是否連接成功
3:導入與導出,如下:
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2將資料庫中system用戶與sys用戶的表導出
expsystem/manager@TESTfile=d:\chu.dmpowner=(system,sys)
3將資料庫中的表table1、table2導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1,table2)
4將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
expsystem/manager@TESTfile=d:\chu.dmptables=(table1)query=\"wherefiled1like'00%'\"
上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面加上compress=y就可以了
數據的導入
1將D:\chu.dmp中的數據導入TEST資料庫中。
impsystem/manager@TESTfile=d:\chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上ignore=y就可以了。
2將d:\chu.dmp中的表table1導入
impsystem/manager@TESTfile=d:\chu.dmptables=(table1)
注意事項:導出dmp數據時需要有導出表的許可權的用戶,否則不能導出。
PL/SQL Developer是Oracle資料庫中用於導入或導出資料庫的主要工具,本文主要介紹了利用PL/SQL Developer導入和導出資料庫的過程,並對導入或導出時的一些注意事項進行了說明,接下來我們就一一介紹。
導出步驟:
1 tools ->export user object 選擇選項,導出.sql文件。
2 tools ->export tables-> Oracle Export 選擇選項導出.dmp文件。
導入步驟:
註:導入之前最好把以前的表刪除,當然導入另外資料庫除外。
1 tools->import tables->SQL Inserts 導入.sql文件。
2 tools->import talbes->Oracle Import然後再導入dmp文件。
一些說明:
Tools->Export User Objects導出的是建表語句(包括存儲結構)。
Tools->Export Tables裡麵包含三種導出方式,三種方式都能導出表結構以及數據,如下:
Oracle Export
Sql Insert
pl/sql developer
第一種是導出為.dmp的文件格式,.dmp文件是二進制的,可以跨平台,還能包含許可權,效率也很不錯,用得最廣 。
第二種是導出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數據量導入導出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能導出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三種是導出為.pde格式的,.pde為Pl/sql developer自有的文件格式,只能用Pl/sql developer自己導入導出,不能用編輯器查看。

6. 如何用plsql從oracle中導入導出數據

用pl/sql developer導出表的數據時有三種方式:Oracle Export,Sql Insert,pl/sqldeveloper

只有「Oracle Export」方式導出再導入後,表結構和索引結構沒有發生變化,另兩種方式都改變了索引掘賣類型。另外判握逗

Sql Insert的那個可以導成sql,可以用文本編輯器打開。

pl/sql developer 也可以導出,但文本編輯器不能打開。

區別:

Oracle Export,Sql Insert,pl/sql developer

第一種是導出為.dmp的文件格式,.dmp文件是二進制的,可以跨平台,還能包含許可權,效率也很不錯,用得最廣

第二種是導出為.sql文件的,可用文本編輯器查看,通用性比較好,但效率不如第一種,適合小數據量導入導出。尤其注意的是表中不能有大欄位(blob,clob,long),如果有,會提示不能導出(提示如下:

table contains one or more LONG columns cannot export in sql format,user Pl/sqldeveloper format instead),可以用第一種和第三種方式導出。

第三種皮羨是導出為.pde格式的,.pde為Pl/sql developer自有的文件格式,只能用Pl/sql developer自己導入導出;不能用編輯器查看,

導出數據到excel文件:

選中數據表--query data--選中要導出的數據--右鍵 to excel

excel數據導入到資料庫:

1.在Excel中准備好要導入的數據。具體操作:在Excel中,把第一列設置為空列,第二列以後的列應與要導入的數據表的欄位相對應。

2.登錄PLSQL Developer,找到需要導入數據的資料庫表後,點擊右鍵--edit data,進入了編輯此表的數據對話框,並點擊最左側選中一空行。

3. Excel表中的數據記錄,將數據粘貼到上步中PLSQL Developer顯示的表列中。

4.點擊PLSQL Developer中的對號按鈕進行Post。

7. oracle怎麼導入sql文件

8. 如何將SQL數據導入ORACLE資料庫中

然後 , 打開PL/SQL 上方Tools——Text Importer——open datafile(左上角)——選擇你的CSV表,打開 記得,勾選左側Name In Header,選擇到Data To Oracle,在這里選擇你要導入到ORACLE里的表和這張表的OWNER,在右側選擇相應欄位,如果對應的上,下面的Import就會亮,好了,每一列挨個點。 注意點:欄位類型別搞錯了。 增長值必須改為序列,時間類型,必須設定默認值,字元中設為『』,因為從SQL中出來的CSV文件,空值都為NULL,相對應在ORACLE會存為NULL,而字元類型的 NULL,頁面讀取時會顯帆判寬示NULL。 所謂沖仿「CSV」,是Comma Separated Value(逗號分隔值)的英文縮寫,通常都是純文本文件。下面是一個實際CSV文件中的部分內容,讓大家對他有一個感性的認識。我們選的是Sjojo_Rescan 的CSV文件(Sjojo是ASW-亞洲掃圖風的成員之一)。 sj_mino1001.jpg,715282,4FB55FE8, sj_mino1002.jpg,471289,93203C5C, sj_mino1003.jpg,451929,C4E80467, 通常CSV文件開頭是不留空的,以行為單位,每行中記錄態亮一張圖片的了多項數據,每項數據用逗號 來分隔(標准英文逗號)。一般說來集圖用的.CSV文件的格式是這樣的:

9. oracle sqldeveloper 如何從資料庫導入/導出數據

PLSQL中還有一個導入表的功能;選擇第二個頁簽:SQL插入;在下面的導入文件建議使用POWERDESIGNER之類的帶有資料庫逆向工程的資料庫設計軟體來做這樣的事

閱讀全文

與sqloracle如何導入數據相關的資料

熱點內容
編程貓項目分析的思路有哪些 瀏覽:927
編程能玩什麼游戲 瀏覽:13
怎麼用win10鏡像 瀏覽:552
10歲沒接觸編程學什麼程序好 瀏覽:375
jsselect必填 瀏覽:784
python學習編程需要什麼基礎 瀏覽:114
ug打開文件找不到 瀏覽:859
獲取登錄數據失敗怎麼解決 瀏覽:30
極迅加速沒網路 瀏覽:766
京東代升級 瀏覽:488
開源篩選工具 瀏覽:840
cad怎麼刪除保存的文件 瀏覽:185
哪個app歌聲可以下載 瀏覽:519
解壓過的文件怎麼打開 瀏覽:929
蘋果4s怎麼打開文件 瀏覽:710
別人拷了excel文件怎麼刪 瀏覽:736
微信收發文件查詢系統異常 瀏覽:541
織夢幻燈片調用代碼 瀏覽:126
怪物獵人怎麼升級hr 瀏覽:547
主表關聯子表並查子表中的資料庫 瀏覽:796

友情鏈接