列的最小长度约束

Minimum length constraint on a column

我正在尝试在 Oracle 中实施最小长度限制。

正如我在 this 中阅读的答案和我尝试过的多个其他类似问题:

ALTER TABLE my_table 
ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (DATALENGTH(password) >=4)

我得到 "DATALENGTH": invalid identifier"。我也试过:

( DATALENGTH([password]) >=4 )
( LEN([password]) >=4 )
( LEN(password) >=4 )

Oracle 中此检查约束的当前格式是什么?

DATALENGTH() returns SQL Server 中的字节长度。等效的 Oracle 函数是 LENGTHB()(已记录 here):

ALTER TABLE my_table
    ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (LENGTHB(password) >= 4)

但是,为了您的目的,我认为字符串长度在两个数据库中都是合适的,LENGTH() 在 Oracle 中(或 LEN() 在 SQL 服务器中)。