2012-02-05 52 views
1

私は2つのスキーマを持っています。私は次のことを行う必要がありOracle:別のスキーマにテーブルを作成し、同じスキーマから選択と挿入を許可します

1.Schema

2.Schema B

  1. 私は(、いくつかのテーブルと同じ)スキーマBにおけるいくつかのテーブルを作成したい
  2. は次にから B にデータを移動します。

今、私は、スキーマからALLこれをやりたいです。私は内で実行されるとB内のすべてのテーブルを作成し、に彼らのためにシノニムを作成するパッケージを書かれています。そして、それ自身のテーブルからデータを選択し、Bのテーブルに挿入するだけです。

ベリー・インプレス:ここでは、この全体を一度に実行する必要があります。 1つの開始ブロックを実行するだけで、そのジョブ全体が処理されます。

問題:しかし、スキーマはそれがBで作成したテーブル上の任意のPRIVSを持っていないため、今の同義語は動作しません。

作成時に与えられたすべてのprivでテーブルを(AからBへ)作成する方法はありますか? また、実行中にPL-SQLでスキーマを切り替えて、BからAにprivを与えることができますか? (私はこれができないと確信していますが、何も言えません!:O:Pので尋ねる)

私を助けてください!すべての提案は大歓迎です!

この仕事の主な目的は、1つのスキーマから1つだけ実行することです。

答えて

3

あなたは、あなたが仕事をして、スキーマBでこのような手順を定義し、スキーマAからそれを呼ぶだろう

CREATE OR REPLACE PROCEDURE definer_test AUTHID DEFINER IS 
BEGIN 
    ... 
END definer_test; 

代わりに、発信者の権利を、定義者権限で実行されます手順を定義することができます

+0

ありがとうOlivier!これは仕事をすることができるようだ – BobadKanda

関連する問題