Скажем, я хочу разрешить в столбце таблицы только те строки, которые начинаются с цифры и не должны содержать в ней '$'.Как будет выглядеть проверочное ограничение для этой таблицы?
Предполагая, что Oracle 10g +, вы можете использовать функцию регулярного выражения Oracle в ограничении CHECK:
ALTER TABLE YOUR_TABLE ADD CONSTRAINT col_regx CHECK REGEXP_LIKE(column_name,'^[[:digit:]]{1}[^$]*$'));
Похоже, вам нужно использовать регулярные выражения Oracle. Полезная ссылка для требования синтаксиса для соответствующего ограничения IF может быть найдена ниже
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm
Я бы сделал что-то вроде
ALTER TABLE YOUR_TABLE ADD CONSTRAINT col_regx CHECK (substr (column_name, 1,1) между '0' и '9' и column_name не похоже на '% $%')
(не проверено, но, вероятно, быстрее, чем регулярное выражение)
Регулярное выражение будет выглядеть так: ^\d[^$]*$
^\d[^$]*$
Я не знаю, Oracle, так что простите, если это на самом деле не поможет вам.