2019年10月1日 星期二

Oracle MODEL:ORA-25137 Data value out of range

Oracle MODEL:ORA-25137 Data value out of range

tags: oracle MODEL ORA-25137 Data value out of range

MODEL是oracle中非常好用的一個分析函數,部份應用可見個人另篇說明。

問題說明

這次在設置measures的時候,有部份欄位需要以文字來處理,但執行的時候卻因此造成ORA-25137 Data value out of range的錯誤訊息。這似乎是因為限制上其欄位長度不能超過dimension的欄位長度,但這很不能滿足實務上的需求。

解法

幾次測試發現,在measures定義欄位的時候,直接利用cast來定義欄位長度,舉例cast('a' as varchar2(100)),那就可以一次給定長度100的varchar2欄位,避免Data value out of range

如下詳細範例:

return updated rows
        partition by (A, B, C)
        dimension by (D)
        measures(
            cast('a' as varchar2(100)) E,
            cast('a' as varchar2(100)) F
        )
        rules upsert(
            write your code here
        )

這種方式設置,就可以讓E、F兩個欄位長度都預設為100。