SQL*Plus的Copy命令
在資料表間複製資料是Oracle DBA經常面對的任務之一,Oracle為這一任務提供了多種解決方案,SQL*Plus Copy 命令便是其中之一。SQL*Plus Copy 命令通過SQL*Net在不同的表(同一伺服器或是不同伺服器)之間複製資料或移動資料。
在實際運行環境中若能恰當地選擇使用SQL*Plus Copy 命令可以有效地提高資料複製的效能。
下面將簡要介紹SQL*Plus Copy 命令使用,並在效能方面與其他兩種方案進行對比,力求能提供一個使用Copy 命令的方案參考。
文法及使用說明
文法:
下面我們來看一下SQL*Copy 命令的文法及使用說明。
在解釋SQL*Plus Copy 命令的文法之前,我們必須要明確SQL*Plus Copy 命令不是一個方法或是函數,也不是一個SQL語句,它是一個命令(command),當然這個命令必須在SQL*Plus裡運行。
SQL*Plus Copy 命令的文法:
COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]USING query |
我們分部分來解釋一下:
COPY – 這個不太需要解釋,主命令,聲明要執行COPY操作。
From Database – 來源資料庫。
To Database – 目標資料庫。
此處注意花括弧中有三種可選的寫法(以”|”隔開),如果來源資料表和目標資料表在同一個Schema中,則可以唯寫From Database,也可以唯寫To Database,當然還可以是第三種寫法,把From Database和To Database寫全。但如果來源資料表和目標資料表不在同一個Schema中,則必須用第三種寫法,即把From Database和To Database都寫全,格式相同:USERID/PASSWORD@SID。
{APPEND|CREATE|INSERT|REPLACE} – 聲明操作資料的方式,下面分別解釋一下:
Append – 向已有的目標表中追加記錄,如果目標表不存在,自動建立,這種情況下和Create等效。
Create – 建立目標表並且向其中追加記錄,如果目標表已經存在,則會返回錯誤。
Insert – 向已有的目標表中插入記錄,與Append不同的是,如果目標表不存在,不自動建立而是返回錯誤。
Replace – 用查詢出來的資料覆蓋已有的目標表中的資料,如果目標表不存在,自動建立。
destination_table – 目標表的名字
[(column, column, column, ...)] – 可以指定目標表中列的名字,如果不指定,則自動使用Query中的列名。
【內容導航】 |
第1頁:終於學會了Oracle資料庫中的Copy命令 |
第2頁:終於學會了Oracle資料庫中的Copy命令 |