SQL-列字符串字符必须大于25

时间:2019-06-22 18:22:41

标签: sql oracle

创建表时,是否可以对列进行约束检查以检查字符串值必须大于25个字符?我知道可以对数字进行处理,但是很难对字符串进行处理。

这是我的代码:

CREATE TABLE TITLE
(Title_ID VARCHAR(8),
Title_Name VARCHAR(MAX) CHECK (Title_Name > 25));

我意识到这只会检查数字值是否大于25,但是如何使它检查字符串值是否大于25个字符

2 个答案:

答案 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)
);

db<>fiddle demo