2017-09-22 9 views
0

データベースのすべてのスキーマにまたがって表を作成できますか? 特にOracleの場合。すべてのスキーマの表を一度に作成

既存のすべてのスキーマに対して全く同じクエリを実行したくありません。私はすべてのスキーマ名を取得するクエリを下回っている、

使用、

select distinct owner FROM all_tables; 

が結果を取得し、あなたのテーブル作成クエリを付加/追加する正規表現を使用してを使用している

ソリューション。

^ - create table 
$ - .tablename \(column1 varchar2(10)\); 

すべての結果問合せをOracleワークシートで実行します。

+2

短い答えを..なし – OldProgrammer

+0

大丈夫ああ、あなたの迅速な対応に感謝します。 – user1751510

+0

少し長めの回答:いいえ、オラクルはこのような奇妙な(おそらく非常にまれな)要件のためのツールを開発する必要はないと感じたためです。なぜすべてが既存のすべてのスキーマに対して同じテーブルを作成しなければならないのか想像するのは難しいです(そして、私はSYSをあなたの "すべて"に含めたくないと願っています...) – mathguy

答えて

0

のビットを使用すると、PL/SQLがすぐに実行され、が実行されます。 あなたはSYSユーザーとして接続し、次のスクリプトを実行している場合たとえば、あなたはすべてのスキーマにテーブルを作成することができます。

begin 
    for cUsers in (select * from dba_users where account_status ='OPEN') 
    loop 
     execute immediate 'create table '||cUsers.username||'.myTable (id number)'; 
    end loop; 
end; 
関連する問題