2017-02-06 10 views
0

免責事項:私はDBAではなく、単なるDBAワナビーです。DBAディレクトリの動的インスタンス

私たちの本番環境でディレクトリを作成している

は:

CREATE DIRECTORY PAY_FOLDER AS '/u01/EBSPROD/apps/apps_st/appl/cust/12.0.0/per/1.0'; 
GRANT READ ON DIRECTORY PAY_FOLDER TO PUBLIC; 

しかし、私たちの生産環境は、(例えばEBSDEVのための)非製品版のインスタンスに複製されたときに、 インスタンス名は変更しませんそれでもEBSPRODのままです。 私はそれになりたいでしょう: /u01/EBSDEV/apps/apps_st/appl/cust/12.0.0/per/1.0

は私がインスタンスのクローンを作成する場合、これらのディレクトリを再作成するために、別のスクリプトが必要ですUAT

にオーバークローンTEST /u01/EBSUAT/apps/apps_st/appl/cust/12.0.0/per/1.0にオーバークローン化されたときDEV /u01/EBSDEV/apps/apps_st/appl/cust/12.0.0/per/1.0にオーバークローン化されたとき?

答えて

1

はい。ディレクトリ名は単なる文字列です。インスタンス名が埋め込まれていることはわかりません。代わりに、CREATEステートメントに続くDROP文の

使用

CREATE OR REPLACE DIRECTORY directory_name AS'path_name'; 

。これにより、このディレクトリにすべての権限が保持されます。

DB名またはインスタンス名(いずれか適切なもの)をとり、正しいディレクトリ名を作成するための単一のパラメータ化されたスクリプトを作成するのはあまり難しいことではありません。

関連する問題