- PR -

SQL@Plus のCopyコマンド

1
投稿者投稿内容
VIVIENNE
常連さん
会議室デビュー日: 2004/08/18
投稿数: 21
投稿日時: 2004-10-25 12:05
いつもお世話になっております。

あるスキーマに存在する、テーブルを
別スキーマにコピーしたいと思っています。

そこで、色々を方法を模索していて、
Copyコマンドという便利なコマンドを発見したのですが、
もちろん、SQL@PlusからのCopyコマンドの実行は、
うまくいきました。

今度は、これをストアドから実行したいのですが、
そういったことは可能でしょうか?
ためしにやってみたのですが、"SQLが無効です"という
エラーが帰ってきてしまいます。

Copyコマンドは、SQL@Plusからの実行しかできないのでしょうか?
教えていただきたく投稿いたしました。

ちなみに環境についてですが、
DBがOracle8iでクライアントがOracle9.2です。

SQL文につきましては、
COPY FROM USER_NAME1/PASSWARD1@SID1 TO USER_NAME2/PASSWARD2@SID2 REPLACE TABLE_NAME2 USING SELECT * FROM TABLE_NAME1
です。

どうか、宜しくお願いします。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-10-25 12:29
msoです。

copyコマンドはSql*Plusのコマンドなので
ストアドからの実行はおそらく無理だと思います。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2004-10-25 13:01
回答では、ありませんが、
単純にオブジェクト権限あたえて select insetするのが、一番無難だとおもうのですが?
VIVIENNE
常連さん
会議室デビュー日: 2004/08/18
投稿数: 21
投稿日時: 2004-10-25 15:13
お返事ありがとうございます。

やっぱりできませんか・・・。
できないとなれば、やはり、
Select Insertですよね。

ありがとうございました。
GooGoo
会議室デビュー日: 2003/08/02
投稿数: 9
投稿日時: 2004-10-25 15:41
Oracleであれば、select insertよりもcreate table as select ...の方が、
効率が良いのでお奨めです。
create table TABLE_NAME2@SID2 as select * from TABLE_NAME1@SID1;
VIVIENNE
常連さん
会議室デビュー日: 2004/08/18
投稿数: 21
投稿日時: 2004-10-25 16:05
引用:

GooGooさんの書き込み (2004-10-25 15:41) より:
Oracleであれば、select insertよりもcreate table as select ...の方が、
効率が良いのでお奨めです。
create table TABLE_NAME2@SID2 as select * from TABLE_NAME1@SID1;



う〜ん、迷いどころですね。
確かに、Create tableも良いのですが、
たしか、プライマリキーとかの制限?は、コピーされないから、
付与してあげなきゃですよね?

Select Insertだと、製造の使用的に
コピー先のテーブルのデータをトランケートしてあげなきゃいけないし、

その辺の手間と効率を考えてやんなきゃですね。

そういった意味で、コピーコマンドが使えればいいなぁ、って
考えてたんですけど、だめなら、Select InsertかCreate Tebleしか
ないんですよね。

貴重なご意見ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)