私は最近、高くつく恥ずかしい過ちを犯してしまいました。あなたが私を助けてくれることを願っています...ここで何が起こったのですか。
PROD への展開では、手順の 1 つは、すべてのDEV.code_mapping
テーブル行がテーブルに存在することを確認することPROD.code_mapping
です。
これを行うために、次のクエリを実行しました (Oracle 11g)。PROD.code_mapping に存在しDEV.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 の null に対して評価できないためと思われますが、NVL([column],'null')
これを機能させるステートメントの量はないようです。
どうすればこれを機能させることができますか???
また:
クエリの修正自体に加えて、このような取り組みのためにあなたが私に与えることができるベストプラクティスの指針を歓迎します. 私は本当に二度とそのようなライブをしたくありません。