如何将Oracle关键字作为表字段名,有何坏处?
1、假如我们执行如下语句
create table T_EXAMPLE_01 (SIZE int);
这个SQL语句中的字段名SIZE为Oracle关键字,直接执行时会报出如下错误

2、同理,如果我们执行如下语句:
create table SIZE(book int);
执行时会报出错误:ORA-00903:invalid table name

3、如果一定要使用Oracle关键字作为表名或字段名,我们可以通过在关键字上加双引号来规避,如
create table T_EXAMPLE_01 ("SIZE" int);
create table "SIZE" (book int);


4、那么问题来了,如何知道自己用的字段名或表名是Oracle中的关键字呢?
当然如果我们用的是PL/SQL来编辑SQL语句,是可以通过字体颜色来区分的,Oracle的关键字会用彩色字体标识。

5、如果不用PL/SQL编辑SQL的话,就需要知道有哪些关键字了,可以通过命令select * from v$reserved_words where reserved='Y'来查询,如下图所示可以看到UNIQUE、SHARE、REVOKE等都是保留字

1、在所有用到关键字的地方如果不加双引号就会报出错误,如果很多SQL中用到了关键字,那么修改起来就非常麻烦了。

2、如果Sql中用到了关键字用为字段名或表名等,很容易给SQL造成混淆,最后定位问题也会麻烦。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:103
阅读量:190
阅读量:20
阅读量:52
阅读量:142