Oracle对表名大小写敏感吗,ORACLE对象名大小写敏感性相关的深入分析

注:

1、 本文是以ORACLE10.2为测试分析版本

2、 本文中提到的ORACLE对像名包括ORACLE中的表名、视图名、字段名、函数名等等。

以下是笔者对创建表及访问使用不同命名方式的一个实例,是笔者的机器上测试结果:

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

SQL> create table mytable  ( C1 VARCHAR2(6)  );

Table created

insert into mytable values('aer');

SQL> select * from "MYTABLE";

C1

---------------

aer

SQL> select * from MYtable;

C1

---------------

aer

SQL> select * from "mytable";

select * from "mytable"

ORA-00942: 表或视图不存在

SQL> drop table mytable;

Table dropped

SQL>

SQL> create table "mytable" (C1 varchar2(6));

Table created.

SQL> insert into "mytable" values('aer');

1 row created.

SQL> select * from "mytable";

C1

---------------

aer

SQL> select * from mytable;

select * from mytable

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> select * from MYTABLE;

select * from MYTABLE

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> select * from "MYTABLE";

select * from "MYTABLE"

*

ERROR at line 1:

ORA-00942: table or view does not exist

下表为笔者的测试结果汇总:

√表示允许访问,×表示不允许访问。

实例:

读取         mytable MYTABLE "mytable" "MYTABLE"

创建

mytable         √           √               ×             √

MYTABLE     √           √                ×            √

"mytable"      ×           ×               √             ×

"MYTABLE" √           √                ×             √

总结归纳:

读取                      小写字母 大写字母 加引号小写字母 加引号大写字母

创建

小写字母                    √              √                    ×                         √

大写字母                    √              √                    ×                         √

加引号小写字母        ×              ×                    √                         ×

加引号大写字母        √              √                    ×                         √

以下为根据笔者对ORACLE数据字典及实际测试总结分析结论:

ORACLE在创建对像时如果没有加引号,对存入数据字典时都会将对像名小写字母转换成大写字母存储,如mytable将转换成MYTABLE;如果创建时加了引号,则以引号内的实际字符存储。

访问时如果没加引号则会将小写字母转换成大写字母再访问,如mytable将转换成MYTABLE;如果加了引号则以引号内的实际字符访问。

ORACLE在读取数据字典时只要发现对像名里有小写字母或者是除字母汉字以外开头的字符都认为是大小写敏感的,并且要求在访问时需要加上引号。

建议创建及更新时,表名、视图名、字段名、函数名不要加引号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值