我需要从DB2 luw中选择所有例程名称。我看到了以下目录表:
如果我运行以下查询:
select count(*) from sysibm.routines;
select count(*) from syscat.routines;结果有很大的差别。有人能说出这些视图之间的区别吗?在选择所有例程名称的任务中应该使用哪一个视图?
发布于 2017-02-22 13:18:09
SYSIBM.ROUTINES和SYSCAT.ROUTINES实际上都是“真实”目录表SYSIBM.SYSROUTINES上的视图。
SELECT TEXT
FROM SYSCAT.VIEWS
WHERE VIEWSCHEMA = 'SYSIBM' AND VIEWNAME = 'ROUTINES';
SELECT TEXT
FROM SYSCAT.VIEWS
WHERE VIEWSCHEMA = 'SYSCAT' AND VIEWNAME = 'ROUTINES';我不会在这里发布结果,因为我不知道IBM是否认为它是专有的(从技术上讲,它是来自DB2本身的)。无论如何,如果您查看视图源代码(首先要用一些SQL lint-like工具重新格式化它!)你会注意到几件事:
一些背景:
换句话说,我通常会把SYSCAT结果看作是“福音”,但是如果你想确切地理解它们所显示的内容,那么你需要深入了解它们的来源。
https://dba.stackexchange.com/questions/165138
复制相似问题