我有这段代码(只是摘录)......
CREATE TABLE "Degree"
(
ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (ippp_code >= 4 OR ippp_code <= 5) NOT NULL
)
我尝试做的是使ippp_code最多5个字符或最少4个字符。所以你只能输入4或5个字符。
当我运行代码时,我收到一条错误消息,说明......
错误:运算符不存在:字符变化&gt; =整数提示: 没有运算符匹配给定的名称和参数类型。你可能会 需要添加显式类型转换。
*** 错误 ** *
错误:运算符不存在:字符变化&gt; =整数SQL state:42883提示:没有运算符匹配给定的名称和参数 类型。您可能需要添加显式类型转换。
我想知道我可以使用我设置的使用字符变化的约束吗?我也可以对代码进行修正吗?
答案 0 :(得分:2)
CREATE TABLE "Degree"
(
ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (length(ippp_code) >= 4 OR length(ippp_code) <= 5) NOT NULL
)
您试图检查ippp_code的值是否介于4和5之间,而不是长度。
答案 1 :(得分:1)
试试这个:
CREATE TABLE Degree
(
ippp_code varchar2(5) not null,
CONSTRAINT four_or_five_chars_only
CHECK (length(ippp_code) between 4 and 5)
);