我最近犯了一个代价高昂且令人尴尬的错误,如果它再次发生,我会很生气。我希望你能帮助我......这就是发生的事情。
在对 PROD 的部署中,其中一个步骤是确保所有DEV.code_mapping
表行都存在于PROD.code_mapping
表中。
为此,我运行了以下查询(Oracle 11g)。我希望它显示PROD.code_mappingDEV.code_mapping
中不存在的每一行。
select * FROM code_mapping D
where D.source_system_id = '&LHDNUMBER'
and not exists
(select 1 from
dm.code_mapping@PROD_CHECK P where
D.mapping_definition_id = P.mapping_definition_id and
D.cdm_code = P.cdm_code and
D.source_system_code = P.source_system_code);
查询返回零个结果。
我错误地得出结论,每一行都DEV.code_mapping
存在于PROD.code_mapping
.
事实证明,实际上PROD.code_mapping
表中不存在任何行。查询不知何故没有接受。我认为这可能是因为此查询无法针对 PROD 中的空值进行评估,但NVL([column],'null')
似乎没有多少语句可以使这项工作。
我怎样才能使这项工作?
还:
除了查询更正本身之外,我欢迎您为此类工作提供任何最佳实践指针。我真的不想再像这样开始直播了。