如何将Oracle关键字作为表字段名,有何坏处?

2025-10-12 13:35:13

1、假如我们执行如下语句

create table T_EXAMPLE_01 (SIZE int);

这个SQL语句中的字段名SIZE为Oracle关键字,直接执行时会报出如下错误

如何将Oracle关键字作为表字段名,有何坏处?

2、同理,如果我们执行如下语句:

create table SIZE(book int);

执行时会报出错误:ORA-00903:invalid table name

如何将Oracle关键字作为表字段名,有何坏处?

3、如果一定要使用Oracle关键字作为表名或字段名,我们可以通过在关键字上加双引号来规避,如

create table T_EXAMPLE_01 ("SIZE" int);

create table "SIZE" (book int);

如何将Oracle关键字作为表字段名,有何坏处?

如何将Oracle关键字作为表字段名,有何坏处?

4、那么问题来了,如何知道自己用的字段名或表名是Oracle中的关键字呢?

当然如果我们用的是PL/SQL来编辑SQL语句,是可以通过字体颜色来区分的,Oracle的关键字会用彩色字体标识。

如何将Oracle关键字作为表字段名,有何坏处?

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

如何将Oracle关键字作为表字段名,有何坏处?

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

如何将Oracle关键字作为表字段名,有何坏处?

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

如何将Oracle关键字作为表字段名,有何坏处?

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