SQL - строка символов столбца должна быть больше 25 - PullRequest
1 голос
/ 22 июня 2019

При создании таблицы, можете ли вы поставить проверку ограничения на столбец, чтобы убедиться, что значение строки должно быть больше 25 символов?Я знаю, что это может быть сделано на числовом, но с трудом сделать это для строки.

Вот мой код:

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

Я понимаю, что это только проверяет, чтобы увидеть, если числовое значениебольше 25, но как сделать так, чтобы он проверял, что строковое значение больше 25 символов

Ответы [ 2 ]

2 голосов
/ 22 июня 2019

В Oracle максимальная длина строки в таблице составляет 4000 8-битных символов (как объяснено здесь ). И вы обычно используете 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 голос
/ 22 июня 2019

Вы должны использовать функцию LENGTH для проверки длины заголовка:

CREATE TABLE TITLE(
  Title_ID VARCHAR2(8),
  Title_Name VARCHAR2(400) CHECK (LENGTH(Title_Name) > 25)
);

db <> fiddle demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...