2016-03-28 8 views
-1

Oracleのデータベースのデータ定義コメントを更新する自動化プロセスを作成しようとしています。ロード後に列情報を自動的に更新するために使用できる特定のストアドプロシージャについて、以前の経験を持っている人はいますか?変数を使用しようとしています。なぜなら、このコメント情報をハードウェア化してオートメーションの目的を破ることができないからです。ありがとうございました!oracleのデータ定義コメントを自動更新するプロセス

+1

あなたがしようとしていることを詳しく説明できますか?あなたはテーブルとコラムのコメントについて話していますか? (通常、どのような種類のデータがテーブルまたは列に格納されているかを記述するために使用されます)そして、すべてのデータロード後にこれらを更新していますか?説明する例がいくつかあるかもしれません。 – ruudvan

+0

はい、私はテーブルと列のコメントは、各負荷の後に更新されることについて話しています。現在のところ、各文字列の値を手動で入力する必要があります(例:COMMENT ON COLUMN employees.job_id IS '略語名';) 更新が必要なコメントは30,000以上ありますので、自動化プロセスを作成する必要がありますこの。 – JohnCan2

+0

"各ロード後に更新されるテーブルとカラムのコメント"。 あなたはどんな負荷ですか?私が例を提供するように頼んだのは、データがロードされた後にテーブルとカラムのコメントが更新されないためです。これらは、設計時に作成され、表の内容とそれが提供するビジネス機能を記述します。作成された列は、通常、列の説明が変更された場合にのみ変更する必要があります。 – ruudvan

答えて

0

私はこれを行う必要性を理解していませんが、これを生成して動的SQLとして実行することができます。テーブルと列のリストを仮定し、TEHコメントはいくつかのルールに従います。

SET SERVEROPUTPUT ON 
SPOOL colcomm.sql 
DECLARE 
     CURSOR c1 IS 
      SELECT table_name, column_name 
      FROM user_tab_columns 
      WHERE table_name like 'fred%'; 
     vCmd VARCHAR2(500); 
    BEGIN 
     FOR r1 IN c1 LOOP 
      vCmd := 'COMMENT ON COLUMN ' || r1.table_name || '.' || r1.column_name || ' IS ''' || '????' || ''''; 
      DBMS_OUTPUT.PUT_LINE (vCmd); 
     END LOOP; 
    END; 

ランは、この、ファイルへのスプールは、スプールファイルを実行します。

UTL_FILEのような他のメカニズムを使用すると、出力が大きすぎますが、私は上記のことがあなたにアイデアを与えることを願っています。

"EXECUTE vCmd"でこれを実行してみましたが、そうでない場合はスプールが必要ないかどうかを確認しました。

問題列のコメントをどのように設定するかは、どのようにわかりますか。

関連する問題