Соединение оракула Проверьте ограничение - PullRequest
1 голос
/ 03 апреля 2011

Скажем, я хочу разрешить в столбце таблицы только те строки, которые начинаются с цифры и не должны содержать в ней '$'.Как будет выглядеть проверочное ограничение для этой таблицы?

Ответы [ 4 ]

4 голосов
/ 03 апреля 2011

Предполагая, что Oracle 10g +, вы можете использовать функцию регулярного выражения Oracle в ограничении CHECK:

ALTER TABLE YOUR_TABLE
ADD CONSTRAINT col_regx CHECK REGEXP_LIKE(column_name,'^[[:digit:]]{1}[^$]*$')); 

Ссылки:

1 голос
/ 03 апреля 2011

Похоже, вам нужно использовать регулярные выражения Oracle. Полезная ссылка для требования синтаксиса для соответствующего ограничения IF может быть найдена ниже

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm

0 голосов
/ 04 апреля 2011

Я бы сделал что-то вроде

ALTER TABLE YOUR_TABLE ADD CONSTRAINT col_regx CHECK (substr (column_name, 1,1) между '0' и '9' и column_name не похоже на '% $%')

(не проверено, но, вероятно, быстрее, чем регулярное выражение)

0 голосов
/ 03 апреля 2011

Регулярное выражение будет выглядеть так: ^\d[^$]*$

Я не знаю, Oracle, так что простите, если это на самом деле не поможет вам.

...