表设计避免使用保留字

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

       要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突,比如,最近我编写的一个ODBC 连接程序里有个表,其中就用了DESC 作为说明字段名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。
— Daniel Jordan

 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值