2,oracle表只有2个字符

时间:2011-06-16 19:07:58

标签: oracle

我正在尝试在oracle中创建一个表,它将接受2个且只有2个字符。我尝试使用char(2),但如果我在insert语句中输入1个字符,它将接受它。如何让oracle只接受2个精确字符的任何插入并拒绝1和3及更高的字符?我在互联网上搜索过,似乎无法找到答案。

谢谢! 克里斯托弗

2 个答案:

答案 0 :(得分:11)

您可以创建一个强制执行此限制的CHECK约束

SQL> create table foo (
  2    col1 varchar2(2) NOT NULL
  3   ,check( length(col1) = 2 )
  4  );

Table created.

SQL> insert into foo values( 'ab' );

1 row created.

SQL> ed
Wrote file afiedt.buf

  1* insert into foo values( 'a' )
SQL> /
insert into foo values( 'a' )
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.SYS_C0022134) violated

答案 1 :(得分:0)

您可以使用预插入触发器来检查长度 - 我无法想到防止单个字符的方法。