2,oracle表只有2个字符

Chr*_*her 4 oracle

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

谢谢!克里斯托弗

Jus*_*ave 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
Run Code Online (Sandbox Code Playgroud)