1. 程式人生 > >如何在oracle中匯出、匯入資料

如何在oracle中匯出、匯入資料

如何在oracle中匯入資料

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

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

  執行環境:可以在SQLPLUS.EXE或者DOS(

命令列)中執行,DOS中可以執行時由於 在oracle 8i 中 安裝目錄\ora81\BIN被設定為全域性路徑,該目錄下有EXP.EXEIMP.EXE檔案被用來執行匯入匯出。

  oraclejava編寫,SQLPLUS.EXEEXP.EXEIMP.EXE這兩個檔案有可能是被包裝後的類檔案。

  SQLPLUS.EXE呼叫EXP.EXEIMP.EXE所包裹的類,完成匯入匯出功能。

  下面介紹的是匯入匯出的例項。

  資料匯出:

  將資料庫TEST完全匯出,使用者名稱system 密碼manager 匯出到D:\daochu.dmp

  exp system/[email protected]

file=d:\daochu.dmp full=y

  將資料庫中system使用者與sys使用者的表匯出

  exp system/[email protected] file=d:\daochu.dmp owner=(system,sys)

  將資料庫中的表inner_notifynotify_staff_relat匯出

  exp aichannel/[email protected] file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

  將資料庫中的表table1中的欄位filed1

"00"打頭的資料匯出

  exp system/[email protected] file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

  上面是常用的匯出,對於壓縮,既用winzipdmp檔案可以很好的壓縮。

  也可以在上面命令後面 加上 compress=y 來實現。

  資料的匯入:

  D:\daochu.dmp 中的資料匯入 TEST資料庫中。

  imp system/[email protected] file=d:\daochu.dmp

  imp aichannel/[email protected] full=y file=file= d:\data\newsmgnt.dmp ignore=y

  上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行匯入。

  在後面加上 ignore=y 就可以了。

  d:\daochu.dmp中的表table1 匯入

  imp system/[email protected] file=d:\daochu.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 - Production on 星期四 216 16:50:05 2006

  (c) Copyright 2000 Oracle Corporation. All rights reserved.

  連線到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

  With the Partitioning option

  JServer Release 8.1.7.0.0 - Production

  經由常規路徑匯出由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改為TOUSERFROMUSERTOUSER的使用者可以不同)

  ROWS=Y

  INDEXES=Y

  GRANTS=Y

  CONSTRAINTS=Y

  BUFFER=409600

  file==/backup/ctgpc_20030623.dmp

  log==/backup/import_20030623.log

匯入資料:進到javadoc目錄下  imp userid=scott/tiger full=y file=ill.dmp

列印所有表名:select table_name from user_tables;

 列印所有表關係 :  select * from user_constraints

列印某個表內的所有列名:select column_name,data_type from user_tab_columns  where table_name = 'SZKB'  order by data_type   

列印某個表的列數:select count(*) from user_tab_columns where table_name='USER_TAKE';

分別列印某個資料庫內所有表的列數:select table_name,count(*) from user_tab_columns group by table_name;

列印某個資料庫內所有表名以及每個表名對應的列名:select table_name,column_name from user_tab_columns order by table_name;


相關推薦

如何在oracle匯出匯入資料

如何在oracle中匯入資料 Oracle資料匯入匯出imp/exp就相當於oracle資料還原與備份。exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp文 件,imp命令可以把dm

oracle匯出匯入部分blob,clob欄位

今天遇到個問題,在A,B庫中,表結構相同,要在A庫A表中,匯出某部分記錄到B庫的A表, 問題是兩個庫的兩個相同表中,都含有BLOB,CLOB欄位,琢磨了下,暫時找到了個方法, 當然不知道有沒更好的工具,那就是用oracle自身的exp和IMP,方法為: 1 exp XXX/

阿里雲匯出匯入資料注意事項

近期一直在搞伺服器端,在阿里雲上匯出、匯入資料時,遇到了一些問題,在此總結一下。 由於匯出資料時,使用了預設選項,結果導致匯出時很順暢,而匯入時,卻屢次不能成功;而阿里雲的控制檯上,毛提示都沒有啊,鬱悶了半天,想到有可能是字元編碼的問題,於是把字元編碼改成UTF-8,我去

Sqlite 命令列匯出匯入資料

開啟命令列 匯出資料到data.csv D:\project>sqlite3.exe old.db SQLite version 3.21.0 2017-10-24 18:55:49 En

Oracle 匯出匯入某使用者所有資料(包括表檢視儲存過程...)

前提:在CMD 命令下 匯出命令:exp 使用者名稱/密碼@資料庫 owner=使用者名稱 file=檔案儲存路徑(如:F:\abcd.dmp) 測試截圖:exp ZM/[email protected] owner=ZM file=F\abcd.dmp 匯入命令:imp 使用者名稱/密碼@

Oracle資料泵(Dump)匯出匯入

*該匯入匯出方式完全適用於分割槽表* 匯出、匯入前準備 注:使用sys、system等系統使用者操作! 1)建立DIRECTORY目錄物件 CREATE DIRECTORY exp_dir AS '/oracle/db/zone'; --存放dm

PLSQL 匯出匯入 表和資料

匯出: 首先點選   TOOLS,選擇  EXPORT TABLES    選中你需要匯出的表, 勾選  “Create tables” 是因為在匯入的資料庫中沒有此表 如果勾選"Drop tables" 而沒

MongoDB資料匯出匯入及索引建立

MongoDB資料匯出、匯入及索引建立 (1)    資料匯出——每個表一個檔案: # mongoexport --db project --collection 表名 --out 輸出檔名,如: # mongoexport --db project --collectio

oracle 匯出匯入DMP格式的檔案

開啟cmd,然後執行下面語句 匯出: exp seh(使用者名稱)/""“[email protected](密碼)”""@SMJK(例項名) file=C:\Users\Administra

docker之匯出匯入資料搬遷

開發十年,就只剩下這套架構體系了! >>>   

oracledropdelete和truncate的區別

win style 刪除數據 oracl 數據庫 不能 存在 表空間 結構 oracle中可以使用drop、delete和truncate三個命令來刪除數據庫中的表, 1. delete和truncate都是刪除表中的內容而不能刪除表的結構,而drop則是刪除表的結構和內容

Oracle inexistsnot in,not exists的比較

src inf .... blog pos str bug class exists 最基本的區別: in 對主表使用索引 exists 對子表使用索引 not in 不使用索引 not exists 對主子表都使用索引 寫法: exist的where條件是: "..

關於Oraclesyssystem和Scott用戶下的數據庫連接問題

連接 con str sta sys oracle cot conn nag system默認:manager sys默認:change_on_install 使用SQL Plus登錄數據庫時,system使用密碼manager可直接登錄。 由於為自己的密碼時更改過

Oraclenvl()instr()及執行多條sql事務操作

col blog acl val 關鍵字 關鍵字查詢 tps art 數據類型 Oracle的Nvl函數 nvl( ) 函數 從兩個表達式返回一個非null 值。 語法 NVL(eExpression1, eExpression2) 參數 eExpression1, eE

12c容器資料庫匯入操作_筆記(Linux/oracle借用shell工具匯入資料檔案操作)

Linux/oracle借用shell工具匯入資料檔案操作 一、使用shell工具,遠端連線到Linux下的oracle資料庫服務上 Xshell 6 (Build 0095) Copyright (c) 2002 NetSarang Computer, Inc. All rights reserved

Oracle獲取Date型別資料,沒有時分秒

oralce資料庫中,獲取Date型別資料,發現數據的格式為:“yyyy-mm-dd”,而不是“yyyy-mm-dd hh24:mi:ss” 1,使用JDBC從oracle資料庫中取Date型別資料,當使用getDate(“欄位名”)方法取值時,只能獲取到日期,而無法獲

oraclelength()lengthb()replace()regexp_substr()函式使用

oracle中length()、lengthb()、replace()、regexp_substr()函式使用  1. length()、lengthb():     lengthb(string)獲取string所佔的位元組長度:返回字串的長度,單位是位元組

Oracleinstrsubstr函式的使用和split功能的實現

substr(str,index1,n) 取字串str,位置index1後面的n個字元,index1取1或0都代表第一個字元。 instr(str,sub,dire,t

MySQL 命令列匯出匯入Select 查詢結果

<!-- 環境: Windows 2003 SP2 + MySQL5.5.28 Author: 部落格園小dee -->   有的時候需要把在一張表中用 select 語句查詢出來的結果儲存到另一張結構相同的表中,可以有幾種方法來實現: 方法一: 在命令列下使

在R語言建立使用資料

《R語言實戰》筆記 —— 建立資料集之資料框 資料框是R中最常處理的資料結構,資料框不同的列可以包含不同模式(數值型、字元型等)的資料。  1. 建立資料框 mydata <- data.frame( col1, col2, col3,...)