如何获取HANA数据库及指定架构中失效的存储过程与函数列表?
Hey,针对你提到的两个问题——尤其是你替换OWHS.Col1为OLCT.Col2后需要验证遗留引用的场景,我整理了HANA数据库里查找失效存储过程和函数的实用方法:
一、获取HANA数据库中所有失效的存储过程和函数列表
HANA自带了系统视图SYS.INVALID_OBJECTS,专门记录所有处于失效状态的数据库对象,这是最直接的途径。你可以用下面的SQL查询来筛选出失效的存储过程和函数:
SELECT SCHEMA_NAME, OBJECT_NAME, OBJECT_TYPE, ERROR_MESSAGE FROM SYS.INVALID_OBJECTS WHERE OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION');
这里的ERROR_MESSAGE字段会明确告诉你失效原因——比如你场景里的“找不到OWHS.Col1列”,能帮你快速定位哪些对象还遗留了旧引用。
二、获取特定架构下的失效存储过程和函数列表
如果你只需要关注某个目标架构(比如你要验证的业务架构),只需要在查询里加个架构过滤条件就行:
SELECT SCHEMA_NAME, OBJECT_NAME, OBJECT_TYPE, ERROR_MESSAGE FROM SYS.INVALID_OBJECTS WHERE OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION') AND SCHEMA_NAME = 'YOUR_TARGET_SCHEMA'; -- 替换成你的实际架构名
这个查询会精准返回你指定架构下所有失效的存储过程和函数,完全匹配你的需求。
额外提示
因为你已经删除了OWHS.Col1,所有还引用该列的对象都会被HANA自动标记为失效,所以通过SYS.INVALID_OBJECTS查询到的结果就是你需要检查的“遗留引用对象”。如果想进一步确认依赖关系,也可以结合SYS.OBJECT_DEPENDENCIES视图,但失效列表的实时性和准确性会更高,毕竟是HANA主动检测并维护的。
内容的提问来源于stack exchange,提问作者WishIWasACoder
相关产品推荐
相关产品推荐

