创建表重新生成时获取无效的数据类型错误

时间:2015-10-20 10:43:47

标签: oracle10g

CREATE TABLE regestration 
  ( 
     email     VARCHAR(30), 
     PASSWORD  VARCHAR(15), 
     f_name    VARCHAR(25), 
     contactno VARCHAR(10), 
     address   VARCHAR(30), 
     city      VARCHAR(15), 
     country   VARCHAR(20), 
     gen       VARCHAR(15), 
     ac_type   VARCHAR(20), 
     e-bank    VARCHAR(15), 
     status    VARCHAR(10) 
  ); 

1 个答案:

答案 0 :(得分:0)

object naming rules包括:

  

不带引号的标识符只能包含来自的字母数字字符   您的数据库字符集和下划线(_),美元符号($),   和英镑符号(#)。数据库链接还可以包含句点(。)和   “at”标志(@)。 Oracle强烈反对使用$和#in   不带引号的标识符。

     

带引号的标识符可以包含任何字符和标点符号   以及空间。但是,既没有引用也没有引用标识符   可以包含双引号或空字符(\ 0)。

您正在尝试将不带引号的标识符创建为e-bank。这不是一个有效的名字;在不带引号的标识符中不允许使用连字符/破折号标点符号。虽然你可以引用它,它只会导致你以后出现问题,任何不得不引用该列的人都会挣扎(并且可能会诅咒你让他们的生活变得更加艰难),并且根据其他列名称,你可能打算使用下划线:

CREATE TABLE regestration 
  ( 
     email     VARCHAR(30), 
     PASSWORD  VARCHAR(15), 
     f_name    VARCHAR(25), 
     contactno VARCHAR(10), 
     address   VARCHAR(30), 
     city      VARCHAR(15), 
     country   VARCHAR(20), 
     gen       VARCHAR(15), 
     ac_type   VARCHAR(20), 
     e_bank    VARCHAR(15), 
     status    VARCHAR(10) 
  );

Table REGESTRATION created.