限制在Oracle中输入的值

时间:2013-12-03 06:10:18

标签: sql oracle

我的问题:我的文字字段大小是110个字符,我有一个像下面的条件

IF :blk.item = 'OTH' then 
  do not allow to enter more than 100 character;
END IF;

如果字段达到100个字符,则不应允许输入下一个字符。

如何在oracle运行时使用它?有没有办法在运行时避免场地长度,谢谢你的宝贵答案。

我使用以下代码

对该项目使用/尝试触发'when-validate-item'
IF :blk.item = 'OTH' then 
  if length(:blk.item1)> 100 then 
     raise form_trigger_failure;
  end if;
END IF;

1 个答案:

答案 0 :(得分:0)

您可以创建约束检查。请参阅下面的示例并根据您的需要进行更改:

create table test (
   value varchar2(10),
   item varchar2(3)
);

alter table test add constraint ck_item_size 
  check ( (item = 'OTH' and length(value)<=8) or (item != 'OTH') );


insert into test values ('12345678', 'OTH'); --will work

insert into test values ('blahblah', 'BLA'); --Will work

insert into test values ('blahblahbl', 'BLE');  --will work

insert into test values ('123456789', 'OTH');  --will not work

在小提琴上看到它,工作示例:http://sqlfiddle.com/#!4/df281

对于Wont work示例,将最后一行粘贴到小提琴上并尝试构建。