2

我需要创建一个具有列数的表,其中一列是 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])+$'))
);
4

3 回答 3

1

尝试:

CREATE TABLE test_1
(
  test_id number,
  test_name varchar(50),
  CONSTRAINT
    name_test
    CHECK (
      regexp_like(test_name,'^([aA-zZ])+$')
    )
);
于 2013-02-14T13:07:51.963 回答
0

你很接近,只需使用函数(返回真/假)。

CREATE TABLE z_test_1
(
  test_id number,
  test_name varchar(50),
  CONSTRAINT name_test
  CHECK (regexp_like(test_name,'^([aA-zZ])+$'))
);
于 2013-02-14T13:08:43.027 回答
0

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

...CHECK (regexp_like(test_name,'^[[:alpha:]]+$') )
于 2013-02-14T13:18:30.060 回答