Oracle数据库支持设置大小写约束



无论如何,我们可以在数据库表级别设置约束,以具有某些列的大写或小写值?当我们创建一个表时,我们可以设置NOT NULL来避免列上出现空值。同样的,我们可以用大写或小写来做吗?

您可以使用检查约束:

create table foo
(
   only_lower varchar(20) not null check (lower(only_lower) = only_lower),
   only_upper varchar(20) not null check (upper(only_upper) = only_upper)
);

我有几乎相同的情况,尝试检查约束,但如果用户没有提到它为UPPER()或LOWER()它给出了错误,所以我采取触发器路由如下面的代码。

--creating table
create table user_name (
first_name varchar2(50),
last_name varchar2(50));
--creating trigger
CREATE OR REPLACE TRIGGER TRG_USER_NAME_IU
  BEFORE INSERT OR UPDATE ON USER_NAME
  FOR EACH ROW
BEGIN
  :NEW.FIRST_NAME := UPPER(:NEW.FIRST_NAME);
  :NEW.LAST_NAME := UPPER(:NEW.LAST_NAME);
END;
/

可以测试和分享反馈或评论

最新更新