Sql 柱上的最小长度约束

Sql 柱上的最小长度约束,sql,oracle,constraints,Sql,Oracle,Constraints,我试图在Oracle中实现最小长度约束 当我阅读答案和其他多个类似问题时,我试着: ALTER TABLE my_table ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (DATALENGTH(password) >=4) 我得到了“DATALENGTH”:无效标识符“。我还尝试了: ( DATALENGTH([password]) >=4 ) ( LEN([password]) >=4 ) ( LEN(password) >=

我试图在Oracle中实现最小长度约束

当我阅读答案和其他多个类似问题时,我试着:

ALTER TABLE my_table 
ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (DATALENGTH(password) >=4)
我得到了
“DATALENGTH”:无效标识符“
。我还尝试了:

( DATALENGTH([password]) >=4 )
( LEN([password]) >=4 )
( LEN(password) >=4 )
Oracle中此检查约束的当前格式是什么?

DATALENGTH()
返回SQL Server中以字节为单位的长度。等效的Oracle函数是
LENGTHB()
(有文档记录):


但是,出于您的目的,我认为字符串长度在两个数据库中都是合适的,即Oracle中的
length()
(或SQL Server中的
LEN()
).

为什么要在Oracle中使用SQL Server函数?顺便说一句:不要在数据库中以明文形式存储密码。@Mat,谢谢你的建议,它只是一个用于测试的数据库,仅供参考,《11.1 SQL参考手册》中有关SQL函数的部分。如果你使用的是不同版本的Oracle,祝你好运。
ALTER TABLE my_table
    ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (LENGTHB(password) >= 4)