# Oracle MODEL:ORA-25137 Data value out of range
###### tags: `oracle` `MODEL` `ORA-25137 Data value out of range`
MODEL是oracle中非常好用的一個分析函數,部份應用可見個人[另篇](https://martychen920.blogspot.com/2017/11/oracle-model.html)說明。
## 問題說明
這次在設置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。