Oracle 建表使用到关键字作为列明或者表名如何处理?

在建表时,一般都不允许使用oracle关键字作为表名,或者列明,否则在后面对表执行数据操作时,会出现sql语法错误的提示。

比如关键字 number(一般喜欢用这个单词表示数量),desc (一般喜欢用这个单词作为描述,简介等),但在oracle中,这两个都是关键字。number表示数字类型,desc表示倒序排序。

如果想用这两个单词作为列明如何处理?只要给这两个关键字加上双引号("")就可以了,如下:

create table t_test(
"number" number,
"desc" varchar2(2000)
);

接下来看看下面这个查询语句

select number,desc from t_test;

好像没什么问题,但是却执行不了,提示“缺失表达式”,为什么会这样?

仍然是因为语句中列明为关键字,所以语法解析错误,处理方式跟上面建表一样,加上双引号,如下就可以了

select "number","desc" from t_test;

 

总结,从上面的处理方式可以看出,虽然有办法解决使用关键字作为列明,甚至是表名,但是在实际使用过程中,却会带来不少麻烦,所以,最后的结论是,建表最好不要使用关键字作为列明。

PS: 自己遇上了,MARK一下


版权声明:本文为ys_zk原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。