日期:2014-05-16  浏览次数:20459 次

表设计避免使用保留字

       v$reserved_words中记录的都是关键字和保留字,reserved字段内容是Y表示这个保留字在标识符中使用。对于reserved为N的关键字,也可能会触发Oracle的bug,所以避免使用是最好的选择。下面来做个试验,创建时会报错,要想创建成功,需要加双引号。  

 SQL> select * from v$reserved_words wherekeyword='SIZE';

KEYWORD  LENGTH RESERVED  RES_TYPE RES_ATTR  RES_SEMI   DUPLICATE

-------- ---------------- -------- -------- ---------- ----------

SIZE          4      Y       N                N         N          N

SQL> createtable test(id number,size number);

create tabletest(id number,size number)

                            *

第 1 行出现错误:

ORA-00904: : 标识符无效

SQL> createtable test(id number,"size" number);

表已创建。

SQL> insertinto test values(1,1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select *from test;

        ID      size

--------------------

         1          1

 

SQL> selectsize from test;

select size fromtest

       *

第 1 行出现错误:

ORA-00936: 缺失表达式

SQL> select"size" from test;

      size

----------

         1