2017年11月3日 星期五

ORA-32638: Non unique addressing in MODEL dimensions

為加入新資料, 改了既有的客製程式, 執行後, 資料看起來沒問題, 但在Web呈現結果的頁面上出現error:

  ORA-32638: Non unique addressing in MODEL dimensions

查看程式裡的procedure/function都沒用到MODEL這語法, 覺得沒救了.

仔細再看error page帶出的SQL, 有項是取view, 不是base table, 由於名稱和base table幾乎完全一樣, 所以一時沒注意到.

查看view裡的寫法, 的確有用到MODEL clause.

以view的SQL測試:
1.只取新資料: OK
2.只取更早一版的資料: OK
3.同時取新轉入資料及最近一版資料: error

再比對就發現原因, 有一些新資料與原有資料的key值相同,  查看這些造成問題的項目, 實際上也是程式條件不正確造成(另一個view A中有限定org).

只要不是改web端的程式, 一切都好處理. 調整完view A的條件, 重新執行程式, 正常了.

查了model的用法, 用在分析資料還不錯, 找時間再研究.


Ref:
1.Using the SQL MODEL Clause to Define Inter-Row Calculations
zsc_import_summary_v