- - PR -
SQL@Plus のCopyコマンド
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 です。 どうか、宜しくお願いします。 | ||||
|
投稿日時: 2004-10-25 12:29
msoです。
copyコマンドはSql*Plusのコマンドなので ストアドからの実行はおそらく無理だと思います。 | ||||
|
投稿日時: 2004-10-25 13:01
回答では、ありませんが、
単純にオブジェクト権限あたえて select insetするのが、一番無難だとおもうのですが? | ||||
|
投稿日時: 2004-10-25 15:13
お返事ありがとうございます。
やっぱりできませんか・・・。 できないとなれば、やはり、 Select Insertですよね。 ありがとうございました。 | ||||
|
投稿日時: 2004-10-25 15:41
Oracleであれば、select insertよりもcreate table as select ...の方が、
効率が良いのでお奨めです。 create table TABLE_NAME2@SID2 as select * from TABLE_NAME1@SID1; | ||||
|
投稿日時: 2004-10-25 16:05
う〜ん、迷いどころですね。 確かに、Create tableも良いのですが、 たしか、プライマリキーとかの制限?は、コピーされないから、 付与してあげなきゃですよね? Select Insertだと、製造の使用的に コピー先のテーブルのデータをトランケートしてあげなきゃいけないし、 その辺の手間と効率を考えてやんなきゃですね。 そういった意味で、コピーコマンドが使えればいいなぁ、って 考えてたんですけど、だめなら、Select InsertかCreate Tebleしか ないんですよね。 貴重なご意見ありがとうございます。 |
1