手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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

时间:2024-10-13 21:13:14

在创建Oracle数据表时,我们有意或无意的就可能会把Oracle的保留关键字设置为了数据表的字段名,甚至是表名,这样统潇瘵侃就执行SQL语句时就会报出如下错误:ORA-00904::invalid identifier本文主要介绍Oracle有哪些关键字,以及如何规避在用到Oracle关键字时SQL报错。

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

工具/原料

Oracle 11g

一、规避方案

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_EX帆歌达缒AMPLE_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关键字作为表字段名,有何坏处
© 手抄报圈