2016-06-27 7 views
0

Я хочу создать контрольное ограничение в DB2, которое будет проверять каждый символ ячейки, а затем допускает только определенные значения. Я пробовал много разных способовDB2 SQL Check Constraint

add check (substr(term, 1, 1) LIKE '[WS]' 
      and substr(term, 2, 1) = 'S' 
      and substr(term, 3, 2) LIKE '[0-9]') 
      and substr(term, 5, 2) LIKE '[ 0-9]') 

Как установить диапазон, в котором должен быть символ?

+0

какая платформа и версия DB2? – Charles

ответ

0

Вы используете синтаксис регулярных выражений, но вы должны указать SQL. Так это должно выглядеть

add check ((substr(text, 1,1)='W' or substr(text, 1,1)='S') 
      and substr(text, 2,1)='S' 
      and substr(text, 3,1) between 0 and 9) 

Теперь с LUW 11.1 DB2 можно также использовать регулярные выражения - что-то вроде:

add check (regexp_like(text, '[WS]+')) 

Это просто пример, вы должны настроить регулярное выражение для ваших нужд ,

+0

Спасибо, что это решило мою проблему :) – DummerTroll

+0

Значит, вы могли бы пометить ее как ответ. – MichaelTiefenbacher