當前位置:首頁 » 編程語言 » oracle導入sql表結構
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle導入sql表結構

發布時間: 2022-06-06 01:23:43

㈠ 在Oracle裡面建相同的表結構,如何把sql庫表的數據導入到Oracle庫的表

在oracle中建個指向sql的dblink
然後select * from sql表@dblink into oracle表。
這樣它可以自動生成sql表的結構,並將數據插入。

㈡ oracle中怎樣把表、表空間導入或導出

Oracle 數據導入導出imp/exp就相當於oracle數據還原與備份。exp命令可以把數據從遠程資料庫伺服器導出到本地的dmp文件,imp命令可以把 dmp文件從本地導入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。

執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,
DOS中可以執行時由於 在oracle 8i 中 安裝目錄\ora81\BIN被設置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件有可能是被包裝後的類文件。
SQLPLUS.EXE調用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。

下面介紹的是導入導出的實例。
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 將資料庫中的表inner_notify、notify_staff_relat導出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令後面 加上 compress=y 來實現。
數據的導入
1 將D:\chu.dmp 中的數據導入 TEST資料庫中。
imp system/manager@TEST file=d:\chu.dmp
imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:\chu.dmp中的表table1 導入
imp system/manager@TEST file=d:\chu.dmp tables=(table1)

基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。

注意:
操作者要有足夠的許可權,許可權不夠它會提示。
資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。

附錄一:
給用戶增加導入數據許可權的操作
第一,啟動sql*puls
第二,以system/manager登陸
第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
第五, 運行-cmd-進入dmp文件所在的目錄,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp

執行示例:
F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp

屏幕顯示
Import: Release 8.1.7.0.0 - Proction on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.

連接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction

經由常規路徑導出由EXPORT:V08.01.07創建的文件
已經完成ZHS16GBK字元集和ZHS16GBK NCHAR 字元集中的導入
導出伺服器使用UTF8 NCHAR 字元集 (可能的ncharset轉換)
. 正在將AICHANNEL的對象導入到 AICHANNEL
. . 正在導入表 "INNER_NOTIFY" 4行被導入
准備啟用約束條件...
成功終止導入,但出現警告。

附錄二:
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的.
先建立import9.par,
然後,使用時命令如下:imp parfile=/filepath/import9.par
例 import9.par 內容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (註:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log

㈢ 怎樣把oracle中資料庫表結構和數據導入到mysql中啊

你可以在oracle中導出表結構成SQL文件,然後根據上面朋友說的NaviCAT premium鏈接到mysql 直接打開sql文件執行就可以導入了。希望其他朋友有更好的辦法,也希望能幫到你

㈣ 如何將oracle資料庫中的數據如何導入到sqlserver

-用DTS移植數據

--數據轉換服務(Data Transformation Services,簡稱DTS),它可以在任意數據源之間移動數據,並在移動過程中對數據進行清洗
--DTS通常用於將數據移動到SQL Server,但實際上它可以方便地在幾乎所有的數據源之間移動數據

--注意:「復制資料庫向導」和「導入/導出向導」實際只是創建和執行了DTS包

--DTS設計器
--「數據轉換服務」->「本地包」->新建或打開包
--「連接」:可用的連接對象
--「任務」:包含了19個關鍵的數據轉換任務,其中最常見的是「轉換數據任務」和「執行SQL任務」
--「包屬性」:在DTS的設計器中選擇「包」->「屬性」或右鍵「包屬性」,可以打開包屬性對話框

--添加「連接」

--添加「任務」
--1、源:源可以是源連接中的一個表、視圖,或者一個SQL查詢
--2、目的:接收數據的表
--3、轉換:對源數據列和目的數據列進行匹配或者連接。一個列轉換可以是下列情形之一:
--復制列是轉換中最常見的情況
--日期時間字元串、小寫字元串、字串、裁剪字元串和大寫串的處理全都與復制列轉換類似,不同的是
--它們中的每一個都增加了某種類型的數據轉換功能
--讀文件和寫文件分別用於將數據導入或者導出到源列中所指定的文件
--對於包含有邏輯或者數據查找的復雜轉換,需要使用ActiveX腳本實現
--4、查找:僅僅把數據從一個表移動到另外一個表是一項很簡單的任務。但在很多情況下我們都必須在轉換的過程中對數據進行修改
--轉換任務可以調用查找腳本找出需要的值來替換源數據集中的值
--a、定義一個查找,「名稱」:需要替換的源數據中的列名;「連接」:目的驅動;「高速緩存」:設置DTS執行時可以緩存的查詢結果數量
--b、「查詢」:可以打開查詢設計器的一個變種,通過它可以為任意的連接定義有效的查詢。該查詢應當以源列表中的值為輸入(參數),
--並返回相應的替代它的值以便插入目的表。輸入的參數用『?』來表示,而select語句所返回的值就是用於在目的表中替代輸入參數的值
--下面的例子從源列中讀出顧客類型的名字,並用查詢所返回的CustomerTypeID來替代它
select customertypeid from customertype where (name = ?)
--為什麼要這樣做呢?源表中的customertype列為字元,而目的表中的customertypeid為整型,所以需要根據源表中的customertype(字元)
--從表customertype中得到相應的customertypeid以便插入到目的表的customertypeid(整數)中
--c、Active轉換?
/*'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************

' Copy each source column to the destination column
Function Main()
DTSDestination("CustomerTypeID") = DTSLookups("CustomerType").Execute(DTSSource("CustomerType"))
Main = DTSTransformStat_OK
End Function
*/
--5、轉換選項:

--工作流控制
--DTS只包含幾個任務的情況在實際中是很少見的。絕大多數DTS包都要執行數十個任務,而這些任務之間又具有錯綜復雜的關系。因此,執行
--順序對於防止錯誤的發生至關重要。
--DTS通過以下選項來控制工作流的執行順序:完成時(藍色);成功時(綠色);失敗時(紅色)
--如:添加任務「執行SQL任務」(用來執行SQL語句),以在執行其他任務之前刪除表中的數據。則此任務為第一個執行。選中此任務和第二個
--任務,然後從「工作流」中選擇需要工作流類型(如完成),就可以設定這兩個任務之間的執行順序。執行好之後作用:先執行第一個任務,
--完成後,再執行第二個任務。。
--如果要為轉換數據任務設置工作流,可以選擇該轉換任務的源連接,右鍵->「工作流屬性」->設置工作流

--執行DTS包

--存儲和移動DTS包
--1、「包」->「保存」:保存到本地伺服器上。展開企業管理器控制台樹的「數據轉換服務」->「本地包」,將會看到那些保存的包
--2、「包」->「另存為」:提供了其他幾種可選的存儲格式和選項
--SQL Server:這種方法將包保存在任何已注冊的SQL Server的MSDB資料庫的sysdtspackages表中。如果已經注冊了相應的伺服器,
--這將是最簡單的把包移動到另外一個SQL Server上的辦法。如果要把包移動到還沒有注冊的伺服器上,應使用「結構花存儲文件」選項
--Meta Data Services:這種高級的方法可以跟蹤已經為DTS修改的數據
--結構化存儲文件:這種方法能夠創建可以復制到另外一個SQL Server,並且可以在另外一台伺服器上打開的文件。一定要注意SQL Server
--和service pack的版本號,因為具有不同的service pack級別的SQL Server 2000實例所使用的結構化存儲文件有可能是不兼容的
--要打開用結構化存儲文件格式保存的包,可以在企業管理器控制台樹的數據轉服務節點的快捷方式菜單中選擇「打開包」菜單命令
--Visual Basic文件:這個選項可以生成與SQL Server DTS包完成同樣任務的VB腳本
--注意:如果已經使用「包」->「另存為」命令保存了包,「包」->「保存」命令將用上一個「另存為」命令所選擇的位置和格式來保存這個包

--增量和版本
--數據轉換服務還有一個很好的特性:它能夠對包的變化進行管理。包的每次保存都會產生該包的一個新版本,最終就會形成該包的多個連續的版本
--如果要查看任意包所保存的各個版本,可以在企業管理器中,從本地包清單中選擇一個DTS包,然後選擇「操作」->「版本」菜單命令,或者從
--該包的快捷方式菜單中選擇「版本」菜單。此時將會打開「DTS包版本」對話框,並顯示該包的各個版本的日期和描述
--使用「DTS包版本」對話框,可以打開以前的版本進行編輯或者對它們進行清理。如果想恢復到某個以前的版本,可以打開該版本進行編輯,然後】
--使用「包」->「另存為」菜單命令以一個新名字保存該包

㈤ oracle怎樣sql文件導入資料庫中

 導出
導出具體的分為:導出表,導出方案,導出資料庫三種方式。
導出使用exp命令來完成的,該命令常用的選項有:
userid: 用於指定執行導出操作的用戶名,口令,連接字元串
tables: 用於指定執行導出操作的表
owner: 用於指定執行導出操作的方案
full=y: 用於指定執行導出操作的資料庫
inctype: 用於指定執行導出操作的增量類型
rows: 用於指定執行導出操作是否要導出表中的數據
file: 用於指定導出文件名
Oracle 筆記
23

 導出表
1.導出自己的表
exp userid=scott/tiger@myoral tables=(emp,dept) file=d:\e1.dmp
2.導出其它方案的表
如果用戶要導出其它方案的表,則需要dba的許可權或是exp_full_database的許可權,比如system就可以導出scott的表
E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp
特別說明:在導入和導出的時候,要到oracle目錄的bin目錄下。
3. 導出表的結構
exp userid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n
4. 使用直接導出方式
exp userid=scott/tiger@accp tables=(emp) file=d:\e4.dmp direct=y
這種方式比默認的常規方式速度要快,當數據量大時,可以考慮使用這樣的方法。
這時需要資料庫的字元集要與客戶端字元集完全一致,否則會報錯...
 導出方案
導出方案是指使用export工具導出一個方案或是多個方案中的所有對象(表,索引,約束...)和數據。並存放到文件中。
1. 導出自己的方案
exp userid=scott/tiger@myorcl owner=scott file=d:\scott.dmp
2. 導出其它方案
如果用戶要導出其它方案,則需要dba的許可權或是exp_full_database的許可權,比如system用戶就可以導出任何方案
exp userid=system/manager@myorcl owner=(system,scott) file=d:\system.dmp
 導出資料庫
導出資料庫是指利用export導出所有資料庫中的對象及數據,要求該用戶具有dba的許可權或者是exp_full_database許可權
增量備份(好處是第一次備份後,第二次備份就快很多了)
exp userid=system/manager@myorcl full=y inctype=complete file=d:\all.dmp
導入
 介紹
導入就是使用工具import將文件中的對象和數據導入到資料庫中,但是導入要使用的文件必須是export所導出的文件。與導
出相似,導入也分為導入表,導入方案,導入資料庫三種方式。
imp常用的選項有
userid: 用於指定執行導入操作的用戶名,口令,連接字元串
tables: 用於指定執行導入操作的表
formuser: 用於指定源用戶
touser: 用於指定目標用戶
file: 用於指定導入文件名
full=y: 用於指定執行導入整個文件
inctype: 用於指定執行導入操作的增量類型
rows: 指定是否要導入錶行(數據)
ignore: 如果表存在,則只導入數據
 導入表
1. 導入自己的表
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp
2. 導入表到其它用戶
要求該用戶具有dba的許可權,或是imp_full_database
imp userid=system/tiger@myorcl tables=(emp) file=d:\xx.dmp touser=scott
3. 導入表的結構
Oracle 筆記
24

只導入表的結構而不導入數據
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp rows=n
4. 導入數據
如果對象(如比表)已經存在可以只導入表的數據
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp ignore=y
 導入方案
導入方案是指使用import工具將文件中的對象和數據導入到一個或是多個方案中。如果要導入其它方案,要求該用戶具有dba
的許可權,或者imp_full_database
1. 導入自身的方案
imp userid=scott/tiger file=d:\xxx.dmp
2. 導入其它方案
要求該用戶具有dba的許可權
imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
 導入資料庫
在默認情況下,當導入資料庫時,會導入所有對象結構和數據,案例如下:
imp userid=system/manager full=y file=d:\xxx.dmp

㈥ oracle中怎樣導入資料庫文件

1、登錄到要導入的資料庫及用戶。

2、依次點擊「工具」——「導入表」。

3、輸入如下命令;

imp被導入用戶名/密碼@實例名file=文件名.dmplog=日誌.dmpfromuser=導出用戶touser=導入用戶

4、 輸入後按回車鍵,等待導入完成即可。

㈦ oracle如何導入資料庫更新表結構和數據

只覆蓋數據的話,SELECT B.X , B.Y ,B.Z .... FROM TABLE_B B
把A里有的欄位調出來插入就可以了

㈧ 怎麼將oracle的數據導入sql中

不同意樓上的說法:
1.沒有看清楚問題,他的意思的把oracle的數據導入到sqlserver中去,而不是oracle到oracle
2.exp里的compress=y不是管壓縮的,它是管建表時的initial extents的
我覺得可以用plsqldeveloper這個工具來解決問題,因為大家都是支持標准SQL的,所以把需要倒的數據表用工具生成SQL腳本,腳本里包含表的基本結構和所要的數據,一些check和constraint就不需要了,怕sqlserver不支持,把生成的腳本拿到sqlserver中去執行。當然這個方法是比較麻煩的,但是這種跨資料庫平台的遷移也就只能這么麻煩!
工具可以到網上搜,

㈨ oracle建表空間和用戶,導入表結構 在線等

這樣就可以
create user rzlm identified by rzlm DEFAULT TABLESPACE "rzlmdata" TEMPORARY TABLESPACE TEMP;

因為表空間的名字默認在資料庫裡面是大寫的。所以你執行第二條語句的話, 資料庫去找的是大寫的 rzlmdata 表空間。

但是一般來說 不需要專門定義一個小寫的表空間名。一般這樣就可以

CREATE TABLESPACE rzlmdata LOGGING DATAFILE 'D:\rzlmdata.DBF' SIZE 2048M REUSE EXTENT MANAGEMENT LOCAL;
create user rzlm identified by rzlm DEFAULT TABLESPACE rzlmdata TEMPORARY TABLESPACE TEMP;