我正在开展一个目标很简单的项目。我们有一个代理键,其数据类型需要从整数变为十进制(18,0),以适应业务增长带来的更多交易。显然,这个领域非常重要,并在数千个对象中被引用。
我想找出一种自动识别该字段存在或引用的所有对象的方法。字段名称为SRV_ACCS_XXX。这就是表/视图/宏等等,它引用了这个字段。
思想将使用目录/系统系统表:)。这是我面临的问题。
dba_col_comments中的对象引用了字段SRV_ACCS但是这些对象没有进入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_%')
由于 Markiv。
答案 0 :(得分:0)
我不知道您的方法和交易率。但对于BIN$..
个对象,它们是已删除的对象。不用担心它们,只需清洗回收站(可能需要一些时间),它们就会消失。