oraclesql導入數據
A. Oracle-sqlplus導入sql文件
將一張表的數據插入到另一張表insert into table2 select * from table1;如果表不存在可以使用 create table table2 as select * from table1; 但是如果要插入的數據量比較大,用命令好使些。
使用PLSQL Developer導入insert語句,數據量過大會死掉,所以直接使用命令行的方式導入insert語句
命令行進入sqlplus: sqlplus 用戶名/密碼@127.0.0.1:1521/tiger ( sqlplus test_name/[email protected]:1521/tiger )
sql>@full_path/test.sql; 例:sql>@D:/test.sql;
test.sql 裡面最後加上一個commit;
--參考http://blog.csdn.net/yin_jw/article/details/38894905
B. 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;
把生成的文件執行即可把此用戶下的所有表名修改成大寫。
C. 怎樣將sql文件導入Oracle資料庫
登錄plsql,x0dx0a文件----新建-----命令窗口x0dx0ax0dx0a然後輸入 @文件路徑,例如 @c:\a.sqlx0dx0ax0dx0a這樣就可以了。直接執行sql文件
D. oracle中怎樣導入資料庫文件
1、登錄到要導入的資料庫及用戶。
2、依次點擊「工具」——「導入表」。
3、輸入如下命令;
imp被導入用戶名/密碼@實例名file=文件名.dmplog=日誌.dmpfromuser=導出用戶touser=導入用戶
4、 輸入後按回車鍵,等待導入完成即可。
E. oracle sqldeveloper 如何從資料庫導入/導出數據
使用Oracle
SqlDeveloper導入導出資料庫中數據的步驟是:
1、打開Oracle
SqlDeveloper
軟體;
2、使用有導入導出許可權的用戶登錄資料庫;
3、選擇工具欄中的Tools菜單中的Database
Export選項;
即可按照提示進行資料庫導入導出操作了
F. 數據批量sql*load導入Oracle資料庫
SQL*LOADER是大型數據
倉庫選擇使用的載入方法 因為它提供了最快速的途徑(DIRECT PARALLEL) 現在 我們拋開其理論不談 用實例來使
您快速掌握SQL*LOADER的使用方法
首先 我們認識一下SQL*LOADER
在NT下 SQL*LOADER的命令為SQLLDR 在UNIX下一般為sqlldr/sqlload
如執行 d:oracle>sqlldr
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
用法: SQLLOAD 關鍵字 = 值 [ keyword=value ]
有效的關鍵字:
userid ORACLE username/password
control Control file name
log Log file name
bad Bad file name
data Data file name
discard Discard file name
discardmax Number of discards to allow (全部默認)
skip Number of logical records to skip (默認 )
load Number of logical records to load (全部默認)
errors Number of errors to allow (默認 )
rows Number of rows in conventional path bind array or beeen direct p
ath data saves
(默認: 常規路徑 所有直接路徑)
bindsize Size of conventional path bind array in bytes(默認 )
silent Supdivss messages ring run (header feedback errors discards part
扮伏itions)
鬧坦direct use direct path液缺桐 (默認FALSE)
parfile parameter file: name of file that contains parameter specification
s
parallel do parallel load (默認FALSE)
file File to allocate extents from
skip_unusable_indexes disallow/allow unusable indexes or index partitions(默認FALSE)
skip_index_maintenance do not maintain indexes mark affected indexes as unusable(默認FALSE)
mit_discontinued mit loaded rows when load is discontinued(默認FALSE)
readsize Size of Read buffer (默認 )
PLEASE NOTE: 命令行參數可以由位置或關鍵字指定
前者的例子是 sqlload scott/tiger foo ;
後者的例子是 sqlload control=foo userid=scott/tiger
位置指定參數的時間必須早於但不可遲於由關鍵字指定的參數 例如
SQLLOAD SCott/tiger control=foo logfile=log
但 不允許 sqlload scott/tiger control=foo log
即使允許參數 log 的位置正確
d:oracle>
我們可以從中看到一些基本的幫助信息 這里 我用到的是中文的WIN ADVSERVER
我們知道 SQL*LOADER只能導入純文本 所以我們現在開始以實例來講解其用法
一 已存在數據源result csv 欲倒入ORACLE中FANCY用戶下
result csv內容
默認 Web 站點 : : RUNNING
other : : STOPPED
third : : RUNNING
從中 我們看出 列 分別以逗號分隔 為變長字元串
二 制定控制文件result ctl
result ctl內容
load data
infile result csv
into table resultxt
(resultid char terminated by
website char terminated by
ipport char terminated by
status char terminated by whitespace)
說明
infile指數據源文件這里我們省略了默認的discardfile result dsc badfile result bad
into table resultxt 默認是INSERT 也可以into table resultxt APPEND為追加方式 或REPLACE
terminated by 指用逗號分隔
terminated by whitespace結尾以空白分隔
三 此時我們執行載入
D:>sqlldr userid=fancy/testpass control=result ctl log=resulthis out
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
SQL*Loader : 在描述表RESULTXT時出現錯誤
ORA : 對象 RESULTXT 不存在
提示出錯 因為資料庫沒有對應的表
四 在資料庫建立表
create table resultxt
(resultid varchar ( )
website varchar ( )
ipport varchar ( )
status varchar ( ))
/
五 重新執行載入
D:>sqlldr userid=fancy/k i l l control=result ctl log=resulthis out
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
達到提交點 邏輯記錄計數
達到提交點 邏輯記錄計數
已經成功!我們可以通過日誌文件來分析其過程 resulthis out內容如下
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
控制文件: result ctl
數據文件: result csv
錯誤文件: result bad
廢棄文件: 未作指定
:
(可廢棄所有記錄)
裝載數: ALL
跳過數:
允許的錯誤:
綁定數組: 行 最大 位元組
繼續: 未作指定
所用路徑: 常規
表RESULTXT
已載入從每個邏輯記錄
插入選項對此表INSERT生效
列名 位置 長度 中止 包裝數據類型
RESULTID FIRST * CHARACTER
WEBSITE NEXT * CHARACTER
IPPORT NEXT * CHARACTER
STATUS NEXT * WHT CHARACTER
表RESULTXT:
行載入成功
由於數據錯誤 行沒有載入
由於所有 WHEN 子句失敗 行沒有載入
由於所有欄位都為空的 行沒有載入
為結合數組分配的空間: 位元組( 行)
除綁定數組外的內存空間分配: 位元組
跳過的邏輯記錄總數:
讀取的邏輯記錄總數:
拒絕的邏輯記錄總數:
廢棄的邏輯記錄總數:
從星期二 月 : : 開始運行
在星期二 月 : : 處運行結束
經過時間為: : :
CPU 時間為: : : (可
六 並發操作
sqlldr userid=/ control=result ctl direct=true parallel=true
sqlldr userid=/ control=result ctl direct=true parallel=true
sqlldr userid=/ control=result ctl direct=true parallel=true
當載入大量數據時(大約超過 GB) 最好抑制日誌的產生
SQL>ALTER TABLE RESULTXT nologging;
這樣不產生REDOLOG 可以提高效率 然後在CONTROL文件中load data上面加一行 unrecoverable
此選項必須要與DIRECT共同應用
在並發操作時 ORACLE聲稱可以達到每小時處理 GB數據的能力!其實 估計能到 - G就算不錯了 開始可用結構
相同的文件 但只有少量數據 成功後開始載入大量數據 這樣可以避免時間的浪費
我的示例
一 在資料庫建立表格weather如下
create table weather(
outlook varchar( )
temperature float
humidity float
windy varchar( )
play varchar( )
)
二 在F盤建立兩個文件 分別如下
# result ctl內容如下
load data
infile result csv
into table weather
(outlook char terminated by
temperature char terminated by
humidity char terminated by
windy char terminated by
play char terminated by
)
# result csv內容如下
sunny FALSE no
sunny TRUE no
overcast FALSE yes
rainy FALSE yes
rainy FALSE yes
rainy TRUE no
overcast TRUE yes
sunny FALSE no
sunny FALSE yes
rainy FALSE yes
sunny TRUE yes
overcast TRUE yes
overcast FALSE yes
rainy TRUE no
三 命令行下執行
F:>sqlldr userid=cq *** /ctbujx control=result ctl
lishixin/Article/program/Oracle/201311/18602
G. 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自己導入導出,不能用編輯器查看。