我正在尝试在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中此检查约束的当前格式是什么?
答案 0 :(得分:12)
DATALENGTH()
返回 SQL Server 中的字节长度。等效的Oracle函数是LENGTHB()
(记录为here):
ALTER TABLE my_table
ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (LENGTHB(password) >= 4)
但是,出于您的目的,我认为字符串长度适用于两个数据库,Oracle中的LENGTH()
(或SQL Server中的LEN()
)。