oracle检查regexp_like
嘿,
我试图在 oracle 中使用 REGEXP_LIKE 进行约束,但我不断收到 ORA-00920: 无效关系运算符
错误,这是我的代码(错误位于 ck_files_name 约束的末尾
CREATE TABLE files(
idFile INT PRIMARY KEY,
idParent INT REFERENCES files,
name VARCHAR2(256),
type CHAR(1),
CONSTRAINT ck_files_name CHECK REGEXP_LIKE(name, '[^\.]'), -- error ORA-00920: invalid relational operator
CONSTRAINT ck_files_type CHECK type IN ('d', 'f'),
CONSTRAINT ck_files_idFile_idParent CHECK (idFile <> idParent),
CONSTRAINT uq_files_idFile_name UNIQUE (idParent, name)
);
,我做错了什么吗?这与我的 oracle 版本(oracle 10g xe)有关吗?
hy,
I am trying to put a constraint with REGEXP_LIKE in oracle, but i keep geting a ORA-00920: invalid relational operator
error, here is my code (the error is at the end of the ck_files_name constraint
CREATE TABLE files(
idFile INT PRIMARY KEY,
idParent INT REFERENCES files,
name VARCHAR2(256),
type CHAR(1),
CONSTRAINT ck_files_name CHECK REGEXP_LIKE(name, '[^\.]'), -- error ORA-00920: invalid relational operator
CONSTRAINT ck_files_type CHECK type IN ('d', 'f'),
CONSTRAINT ck_files_idFile_idParent CHECK (idFile <> idParent),
CONSTRAINT uq_files_idFile_name UNIQUE (idParent, name)
);
Am I doing something wrong, or does it have to do with my oracle version (oracle 10g xe) ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须在
check
关键字后面添加括号。以下内容至少适用于 Oracle 11 R2。
You have to put parantheses after the
check
keyword.The following works, at least with Oracle 11, R2.
缺少括号。
试试这个:
Paranthesis is missing.
Try this: