关于oracle表名区分大小写的问题

Aaronn 发布于 2013/04/28 09:07
阅读 3K+
收藏 1

我从同事那里导入的dmp文件,导入时导入成功了,但是在表名右键querydata时却提示如下错误,后来才知道oracle是严格区分大小写的,如果要让oracle识别小写,就需要给表名加上引号,但是,要怎样设置才能右键querydata时直接就查询出数据,而不用在手动去sql语句里添加引号?

加载中
0
逝水fox
逝水fox
oracle除非是建表的时候的强制要求才严格区分表名大小写,我觉得与其改sql还不如吧表改过
Aaronn
Aaronn
好吧。。。
0
Y-QTCe
Y-QTCe
你把表名全改成大写,SQL语句里就可以随意使用大小写了。
0
bovver
bovver

oracle不是区分大小写的,是建表的时候是没有去掉双引号。

CREATE TABLE TableName(id number); //虽然写的时候是有大写和小写,但是在数据库里面是不区分的。
select * from tablename; //这样是可以的
SELECT * FROM TABLENAME; //这样写也不会有问题
SELECT * FROM TableName; //都没问题


CREATE TABLE "TableName"("id" number);  // 如果创建表的时候是这样写的,那么就必须严格区分大小写
SELECT * FROM "TableName"; //不仅要区分大小写而且要加双引号,以便和上面的第三种查询方式区分开。
所以问题不在于oracle,而是你的同事创建表的时候没有去掉双引号。

Aaronn
Aaronn
嗯,就是这样的。。
0
bovver
bovver
你这样存在一个可能的问题,当TableName和"TableName"同时存在的时候,可能能会造成误会。
0
amonxu
amonxu
少年,把表名都改为大写吧!
0
Mr_Zhou
Mr_Zhou

引用来自“赵朝波”的答案

oracle不是区分大小写的,是建表的时候是没有去掉双引号。

CREATE TABLE TableName(id number); //虽然写的时候是有大写和小写,但是在数据库里面是不区分的。
select * from tablename; //这样是可以的
SELECT * FROM TABLENAME; //这样写也不会有问题
SELECT * FROM TableName; //都没问题


CREATE TABLE "TableName"("id" number);  // 如果创建表的时候是这样写的,那么就必须严格区分大小写
SELECT * FROM "TableName"; //不仅要区分大小写而且要加双引号,以便和上面的第三种查询方式区分开。
所以问题不在于oracle,而是你的同事创建表的时候没有去掉双引号。

+1
0
Ryan-瑞恩
Ryan-瑞恩
加上用户名试试。
0
六只
六只
兄弟自讨苦吃啊。你加上双引号应该就可以解决了。就像楼上众位说的,你都大写吧。
0
就是个精虫上脑的地方
就是个精虫上脑的地方

引用来自“Y-QTCe”的答案

你把表名全改成大写,SQL语句里就可以随意使用大小写了。
我就是这么干的
0
yoyoQ
yoyoQ

引用来自“gosu”的答案

少年,把表名都改为大写吧!
我们都是这样干,建表从没小写过
返回顶部
顶部