Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不区分大小写的检查约束_Sql_Oracle_Novaclient - Fatal编程技术网

Sql 不区分大小写的检查约束

Sql 不区分大小写的检查约束,sql,oracle,novaclient,Sql,Oracle,Novaclient,创建了下表: CREATE TABLE VEHICLES (vehicleVIN VARCHAR(30) PRIMARY KEY, vehicleType VARCHAR(30) NOT NULL CHECK (vehicleType IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')), vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (vehicleWhereFrom IN ('maryla

创建了下表:

CREATE TABLE VEHICLES

(vehicleVIN VARCHAR(30) PRIMARY KEY,

vehicleType VARCHAR(30) NOT NULL CHECK (vehicleType IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),

vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (vehicleWhereFrom IN ('maryland','virginia','washington, d.c.'));

运行insert命令时,具有大写字母的条目(例如:Compact、Compact、马里兰、弗吉尼亚等)违反检查约束(错误ORA-02290)。如何使检查约束不区分大小写?所期望的结果是,只要单词拼写正确,插入的数据就可以被接受,无论大小写如何。通过NOVA使用Oracle数据库。谢谢

使用
lower
检查列的小写版本

CHECK vehicleType VARCHAR(30) NOT NULL CHECK (lower(vehicleType) IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
CHECK vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (lower(vehicleWhereFrom) IN ('maryland','virginia','washington, d.c.'));

使用
lower
检查列的小写版本

CHECK vehicleType VARCHAR(30) NOT NULL CHECK (lower(vehicleType) IN ('compact', 'midsize', 'fullsize', 'suv', 'truck')),
CHECK vehicleWhereFrom VARCHAR(30) NOT NULL CHECK (lower(vehicleWhereFrom) IN ('maryland','virginia','washington, d.c.'));
你可以用

CHECK (REGEXP_LIKE(vehicleType,'compact|midsize|fullsize|suv|truck','i'))
你可以用

CHECK (REGEXP_LIKE(vehicleType,'compact|midsize|fullsize|suv|truck','i'))

将这些列定义为具有不区分大小写的排序规则。因此,类似于:vehicleType VARCHAR(30)NOT NULL COLLATE BINARY_CI CHECK(vehicleType IN('compact'、'middize'、'fullsize'、'suv'、'truck')??是,或其他不区分大小写的排序规则!(或其他不区分大小写的排序规则,具体取决于您的需要。)定义这些列以具有不区分大小写的排序规则。例如:vehicleType VARCHAR(30)NOT NULL COLLATE BINARY_CI CHECK(vehicleType IN('compact'、'midsize'、'fullsize'、'suv'、'truck')??是,或其他不区分大小写的排序规则!(或其他不区分大小写的排序规则,取决于您的需要。)谢谢。我将在今晚访问服务器后重试。出于某种原因,我认为这只会检查所有小写的内容,但现在似乎有意义了。我已经有几年没有使用SQL了。谢谢你的复习!这果然奏效了。再次感谢你帮我回忆起我的记忆!祝你过得愉快!谢谢我将在今晚访问服务器后重试。出于某种原因,我认为这只会检查所有小写的内容,但现在似乎有意义了。我已经有几年没有使用SQL了。谢谢你的复习!这果然奏效了。再次感谢你帮我回忆起我的记忆!祝你过得愉快!