如何使 SQL 中的检查约束不区分大小写?

Muh*_*a18 2 sql oracle constraints

这是我的一段代码。

CREATE TABLE ORDER_SOURCE(
    OS_ID NUMBER(4),
    OS_DESC VARCHAR2(20),
    CONSTRAINT order_source_os_id_pk PRIMARY KEY (OS_ID),
    CONSTRAINT order_source_os_desc_cc CHECK ((OS_DESC='CATALOG DESCRIPTION') OR (OS_DESC='WEB SITE'))
);
Run Code Online (Sandbox Code Playgroud)

我也希望能够以小写形式插入值。下面的例子:

INSERT INTO ORDER_SOURCE VALUES(0002,'Web Site');
Run Code Online (Sandbox Code Playgroud)

但我可以编辑我的检查约束以添加“网站”或“目录”,我只是想尝试其他方法。谢谢。

Tim*_*sen 5

您可以将列小写,然后与小写字符串文字进行比较:

CONSTRAINT order_source_os_desc_cc
CHECK (LOWER(OS_DESC) IN ('catalog description', 'web site'))
Run Code Online (Sandbox Code Playgroud)