我曾尝试在其他领域寻找,但我似乎无法弄清楚我正在做的事情有什么问题。我正在尝试在应该包含格式为“00000-0000”的 9 位邮政编码的列上创建检查约束。这是一个分配,所以我唯一可以做的就是创建检查约束。
我已经成功地将 check 语句用于其他列,但由于某种原因,我在 Stack Overflow 上找到的语句不起作用。唯一允许的字符是数字和连字符 ('-')。
alter table Student
add constraint student_zip_ck
check (Zip not like '%[0-9\-]%' escape '\');
由于此检查约束是根据 Stack Overflow 上的另一个(正面评价)问题建模的,因此我不知道可能出了什么问题。这是我收到的错误。
Error starting at line 751 in command:
alter table Student
add constraint student_zip_ck
check (Zip not like '%[0-9\-]%' escape '\')
Error report:
SQL Error: ORA-00604: error occurred at recursive SQL level 1
ORA-01424: missing or illegal character following the escape character
00604. 00000 - "error occurred at recursive SQL level %s"
*Cause: An error occurred while processing a recursive SQL statement
(a statement applying to internal dictionary tables).
*Action: If the situation described in the next error on the stack
can be corrected, do so; otherwise contact Oracle Support.
有人对我有建议、问题或意见吗?