Oracle exp query條件檢索在WINDOWS和LINUX下的命令區別

來源:互聯網
上載者:User
Oracle exp query條件檢索在WINDOWS和LINUX下的命令區別
2011-09-16 09:54:15     我來說兩句      
收藏    我要投稿

今天因為業務需要,運行了EXP的條件匯出,發現WINDOWS和LINUX下有些差別,主要區別在于敏感字元,執行個體如下:
LINUX:
exp us/pass TABLES=\(t_ec_event\) file=/tmp/test.dmp QUERY=\"WHERE eventid =\'40288a2627f491080127fab7f17232b4\'\"
WINDOWS:
exp us/pass@test TABLES=(t_ec_event) file=test.dmp QUERY='WHERE eventid ="40288a2627f491080127fab7f17232b4"'
更多資料如下:
Oracle的exp工具有一個query參數可以指定一個where條件來有條件地匯出記錄, 對於不經常用這個選項的人來說, 經常會遇到這樣的錯誤:
LRM-00112: multiple values not allowed for parameter 'query'

EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
EXP-00000: Export terminated unsuccessfully
這是因為在where條件中一般都會有空格, 而命令列下就會被釋成幾個命令列參數, 需要用單引號或雙引號將整個where條件括起來, 就可以了. 在Windows下, 如何指定query參數:
exp ... query='where deptno=10'
exp ... query='where deptno=''10'''
exp ... query='where deptno"<"10'
在Solaris(C shell)下, 如何指定query參數:
exp ..... query=\"where col1 \< 1000\"
exp ..... query=\"where col1 \< '1000'\"
其他Unix平台的應當和Solaris下的一樣, 我自已也經常搞錯. 在上面的例子中已經說明了如何在query值中使用單引號, 因此在看完這篇後, 就應當可以寫出正確的where條件了. 最好是寫在一個參數檔案裡, 這樣的話就不用注意這些了.

E:\>exp help=y

通過輸入 EXP 命令和使用者名稱/口令,您可以
在使用者 / 口令之後的命令:

執行個體: EXP SCOTT/TIGER

或者,您也可以通過輸入跟有各種參數的 EXP 命令來控制“匯出”的運行方式。
要指定參數,您可以使用關鍵字:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
執行個體: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區表

USERID 必須是命令列中的第一個參數。

關鍵字 說明(預設)
---------------------------------------------------
USERID 使用者名稱/口令
FULL 匯出整個檔案 (N)
BUFFER 資料緩衝區的大小
OWNER 所有者使用者名稱列表
FILE 輸出檔案 (EXPDAT.DMP)
TABLES 表名列表
COMPRESS 匯入一個範圍 (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 匯出許可權 (Y)
INCTYPE 增量匯出類型
INDEXES 匯出索引 (Y)
RECORD 跟蹤增量匯出 (Y)
ROWS 匯出資料行 (Y)
PARFILE 參數檔案名稱
CONSTRAINTS 匯出限制 (Y)
CONSISTENT 交叉表一致性
LOG 螢幕輸出的記錄檔
STATISTICS 分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)
TRIGGERS 匯出觸發器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
FILESIZE 各轉儲檔案的最大尺寸
QUERY 選定匯出表子集的子句

下列關鍵字僅用於可傳輸的資料表空間
TRANSPORT_TABLESPACE 匯出可傳輸的資料表空間中繼資料 (N)
TABLESPACES 將傳輸的資料表空間列表


E:\>imp help=y

可以通過輸入 IMP 命令和您的使用者名稱/口令
跟有您的使用者名稱 / 口令的命令:

執行個體: IMP SCOTT/TIGER

或者, 可以通過輸入 IMP 命令和各種自變數來控制“匯入”按照不同參數。
要指定參數,您可以使用關鍵字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
執行個體: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區表

USERID 必須是命令列中的第一個參數。

關鍵字 說明(預設)   
----------------------------------------------
USERID 使用者名稱/口令
FULL 匯入整個檔案 (N)
BUFFER 資料緩衝區大小
FROMUSER 所有人使用者名稱列表
FILE 輸入檔案 (EXPDAT.DMP)
TOUSER 使用者名稱列表
SHOW 只列出檔案內容 (N)
TABLES 表名列表
IGNORE 忽略建立錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 匯入許可權 (Y)
INCTYPE 增量匯入類型
INDEXES 匯入索引 (Y)
COMMIT 提交數組插入 (N)
ROWS 匯入資料行 (Y)
PARFILE 參數檔案名稱
LOG 螢幕輸出的記錄檔
CONSTRAINTS 匯入限制 (Y)
DESTROY 覆蓋資料表空間資料檔案 (N)
INDEXFILE 將表/索引資訊寫入指定的檔案
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE 執行轉儲檔案中的 ANALYZE 語句 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
TOID_NOVALIDATE 跳過指定類型 id 的校正
FILESIZE 各轉儲檔案的最大尺寸
RECALCULATE_STATISTICS 重新計算統計值 (N)

下列關鍵字僅用於可傳輸的資料表空間
TRANSPORT_TABLESPACE 匯入可傳輸的資料表空間中繼資料 (N)
TABLESPACES 將要傳輸到資料庫的資料表空間
DATAFILES 將要傳輸到資料庫的資料檔案
TTS_OWNERS 擁有可傳輸資料表空間集中資料的使用者

參考:http://topic.csdn.net/u/20090828/12/bd99e46b-d024-4073-a32f-c7116f1dea35.html?55665

作者“麥地塢”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.