创建表时,是否可以对列进行约束检查以检查字符串值必须大于25个字符?我知道可以对数字进行处理,但是很难对字符串进行处理。
这是我的代码:
CREATE TABLE TITLE
(Title_ID VARCHAR(8),
Title_Name VARCHAR(MAX) CHECK (Title_Name > 25));
我意识到这只会检查数字值是否大于25,但是如何使它检查字符串值是否大于25个字符
答案 0 :(得分:2)
在Oracle中,表中字符串的最大长度为4000个8位字符(如here所述)。通常,您将varchar2()
用于可变长度的字符串。因此,您可以这样做:
CREATE TABLE TITLE (
Title_ID VARCHAR2(8),
Title_Name VARCHAR2(4000) CHECK (LENGTH(Title_Name) > 25)
);
如果您想使用长度不受限制的字符串,则可以使用CLOB
,但是使用它们通常比较挑剔。
如果您碰巧正在使用SQL Server(您的语法建议),那么它将是:
CREATE TABLE TITLE (
Title_ID VARCHAR(8),
Title_Name VARCHAR(MAX) CHECK (LEN(Title_Name) > 25)
);
答案 1 :(得分:1)
您应该使用LENGTH
函数检查标题长度:
CREATE TABLE TITLE(
Title_ID VARCHAR2(8),
Title_Name VARCHAR2(400) CHECK (LENGTH(Title_Name) > 25)
);