Chinaunix首页 | 论坛 | 博客
  • 博客访问: 711847
  • 博文数量: 94
  • 博客积分: 1937
  • 博客等级: 上尉
  • 技术积分: 1618
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-04 18:46
个人简介

专注数据库开发管理

文章分类

全部博文(94)

文章存档

2015年(1)

2014年(2)

2013年(19)

2012年(32)

2011年(10)

2010年(30)

分类: Oracle

2012-11-29 11:00:01

有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢?
其实很简单,只要在此关键字加上"",如"group"

看下面的例子:
SQL> DROP TABLE k;
 
Table dropped

-- 建立表K,字段名为UID(oracle关键字)
SQL> CREATE TABLE k(UID INT);
 
CREATE TABLE k(UID INT)
 
ORA-00904: : invalid IDENTIFIER

-- 字段名加""表创建成功
SQL> CREATE TABLE k("UID" INT);
 
Table created

--插入一些数据
SQL> INSERT INTO k VALUES(1);
 
1 row inserted
SQL> INSERT INTO k VALUES(2);
 
1 row inserted
SQL> INSERT INTO k VALUES(3);
 
1 row inserted

-- 查询时加不加""都正常(似乎不太符合规范,UID 可能是比较特殊的关键字???)
SQL> SELECT UID FROM k; 
 
       UID
----------
         5
         5
         5
SQL> SELECT "UID" FROM k;
 
                                    UID
---------------------------------------
                                      1
                                      2
                                      3
 
-- update时必须加上""  
SQL> UPDATE k SET UID=5 WHERE UID=3;
 
UPDATE k SET UID=5 WHERE UID=3
 
ORA-01747: invalid user.table.column, table.column, or column specification
SQL> UPDATE k SET "UID"=5 WHERE "UID"=3;
 
1 row UPDATED

总结:
1. oracle可以在"关键字"的形式引用关键字作为字段名与查询语句的别名。如果不是特殊情况最好不要使用,以免引起代码编写过程中的错误。
2. 加了""的关键字必须大写。(补充)

-- The End --
阅读(3009) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~