oracle ora-00911

在用hibernate的时候,无意间用了_teacher这个作为表名。然后就遇到了ora-00911这个错误。后来查了一下oracle错误文档,如下:

ORA-00911 invalid character

Cause Special characters are valid only in certain places. If special characters other than $, _, and # are used in a name and the name is not enclosed in double quotation marks ("), this message will be issued. One exception to this rule is for database names; in this case, double quotes are stripped out and ignored.
Action Remove the invalid character from the statement or enclose the object name in double quotation marks.

 

引起的原因:

     特殊字符在特殊的位置才会有效。如果类似$,_,#这些字符在名字中引用了,而又没有用“ 引起来,这个异常就会被跑抛出来。对于数据库名字来说,可以不用参照这个规则;这样,双引号将会被截掉和忽略。

解决办法:

    去掉这些特殊字符,或者将这些特殊字符用” 引起来。

 

Oracle

一、 命名约定

1. 是指数据库、数据库对象如TABLE、SEQUENCE、PROCEDURE、COLUMN等的命名约定;

2. 命名富有意义英文词汇,除个别通用的(见列表),要避免使用缩写),多个单词组成的,中间以下划线分割;

3. 除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;

4. 命名只能使用英文字母,数字和下划线;

5. 避免使用Oracle的保留字如level、关键字如type(见列表);

6. 名表之间相关列名尽量同名;

7. 数据库的命名:网上数据库命名为“OLPS”+表示站点(SITE,以下同)的2-4个字符,后台数据库命名为“BOPS”+表示站点的2-4个字符。测试数据库命名为“OLPS|BOPS”+“TEST”, 开发数据库命名为“OLPS|BOPS”+“TEST”,用模式(SCHEMA/USER)的不同来区分不同的站点。

8. INDEX命名:table_name+column_name+index_type(1 byte)+idx,各部分以下划线(_)分割。多单词组成的column name,取前几个单词首字母,加末单词组成column_name。如:sample表member_id上的index: sample_mid_idx   news表title上的unique index:news_titile_uidx;

9. SEQUENCE命名:seq_+table_name;

二、 注释说明

1. 本注释说明主要用于PL/SQL程序及其它SQL文件,其它可作参考;

2. SQLPLUS接受的注释有三种:

―― 这儿是注释

/* 这儿是注释 */

REM 这儿是注释

3. 开始注释,类似JAVAK中的开始注释,主要列出文件名,编写日期,版权说明,程序功能以及修改记录:

你可能感兴趣的:(Oracle,开发)