0

私は目的が単純なプロジェクトに取り組んでいます。ビジネスの成長により、より多くのトランザクションに対応するために、データ型を整数から 10 進数 (18,0) に変更する必要がある代理キーがあります。どうやら、このフィールドは非常に重要で、何千ものオブジェクトで参照されています。

このフィールドが存在または参照されているすべてのオブジェクトを自動的に識別する方法を見つけたいと思います。フィールド名は、SRV_ACCS_XXX などです。それは、このフィールドを参照するテーブル/ビュー/マクロなどです。

考えはカタログ/システムシステムテーブルを使用します:) .これは私が直面している問題です。フィールド SRV_ACCS への参照を持つ dba_col_comments にオブジェクトがありますが、これらのオブジェクトには dba_objects へのエントリがないため、オブジェクト タイプが null になります。オブジェクト名は似"BIN$01gtIjJPB0vgRAALXeCowg==$0"ていますが、有効なデータベース スキーマ名を持っています。

私のアプローチは正しいですか?もしそうなら、「BIN$01gtIjJPB0vgRAALXeCowg==$0」という名前のオブジェクトのタイプは何ですか? 結果から一時オブジェクト/揮発性オブジェクトを削除して、永続的に作成されたオブジェクトのみを取得するにはどうすればよいですか? 変更を加えずにクエリを実行するたびに、異なる結果が生成されるためです。

次のクエリを読んでください。

select 
current_date "Load_date",
NULL "Tower_owner",
'Oracle Production' as "Environment_Name",
Object_Details_Tbl.TABLE_NAME "Object_Name",
object_typ_tbl.object_type "Object Type",
1 "Num Occurances",
Object_Details_Tbl.Owner "Database Schema",
'p1etl1d8.edc.cingular.net' "Server",
'N/A' "Object_Repository",
'Oracle Table'  "Object_Description",
'N/A' "Object_Folder_Name", 
'N/A' "Object_Directory_Name",
'A' AS "Object_Status" 
from dba_col_comments Object_Details_Tbl
left outer join
dba_objects Object_Typ_Tbl
on
object_details_tbl.table_name = object_typ_tbl.object_name
and
object_details_tbl.owner = object_typ_tbl.owner
where Object_Details_Tbl.column_name like('%SRV_ACCS_%')

ありがとうマルクフ。

4

1 に答える 1

0

あなたのアプローチと取引率についてはわかりません。ただし、BIN$..オブジェクトの場合、それらは削除されたオブジェクトです。それらについて心配する必要はありません。ごみ箱をパージするだけで (時間がかかる場合があります)、それらは消えるはずです。

于 2013-01-16T17:07:18.233 に答える