如何限制oracle中的列只支持字符?

时间:2013-02-14 13:02:11

标签: sql oracle oracle11g

我需要创建一个包含列数的表,其中一列是varchar2类型。现在问题是我需要设置特定列应该只支持字母表。 我已经尝试过这段代码,但是没有工作,任何人都可以帮助我!
提前谢谢!

CREATE TABLE test_1
(
  test_id number,
  test_name varchar(50),
  CONSTRAINT name_test
  CHECK (test_name where regexp_like(test_name,'^([aA-zZ])+$'))
);

3 个答案:

答案 0 :(得分:1)

尝试:

CREATE TABLE test_1
(
  test_id number,
  test_name varchar(50),
  CONSTRAINT
    name_test
    CHECK (
      regexp_like(test_name,'^([aA-zZ])+$')
    )
);

答案 1 :(得分:0)

你很接近,只需使用该函数(返回true / false)。

CREATE TABLE z_test_1
(
  test_id number,
  test_name varchar(50),
  CONSTRAINT name_test
  CHECK (regexp_like(test_name,'^([aA-zZ])+$'))
);

答案 2 :(得分:0)

http://www.dba-oracle.com/t_regular_expressions_constraints_updates_columns.htm

...CHECK (regexp_like(test_name,'^[[:alpha:]]+$') )