网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  Oracle中对像名大小写敏感性的深入解析     
  文章作者:未知  文章来源:未知  
  查看:102次  录入:管理员--2007-08-05  
 

一般情况下,使用者在进行Oracle开发或管理里都不会ORACLE对像名大小写进行区别,因为ORALCE在普通情况下会将所有小写都转换为大写进行处理,所以可以说是大小写不敏感的。但是实际ORACLE内部有它一套完整的对像名处理方式。本文将从实例进行分析与探讨ORACLE对像名大小写敏感性的处理机制。

可能很多人在工作已经了解到,ORACLE在创建对像时是可以加引号的,如果不加引号则不能使用特别字符,只能使用以字母开头的命名。如果加了引号就可以在对像名里使用任何字符,包括数字开头、下划线、逗号等等。在导出SQLSERVER2000的对像创建脚本时一般是加了引号的,所以经常有人说脚本在ORACLE中运行后对像不能访问的问题。

注:

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

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

以下为创建表及访问使用不同命名方式的一个实例,测试结果如下:

Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0 
Connected as *****
 
SQL> create table mytable1
 2 (
 3    C1 VARCHAR2(6)
 4 );
Table created
SQL> select * from "MYTABLE1";
C1
------
SQL> select * from MYtable1;
C1
------
SQL> select * from "mytable1";
select * from "mytable1"
ORA-00942: 表或视图不存在
SQL> drop table mytable1;
Table dropped
SQL> 
SQL> 
SQL> create table "mytable1"
 2 (
 3    C1 VARCHAR2(6)
 4 );
Table created
SQL> select * from "mytable1";
C1
------
SQL> select * from mytable1;
select * from mytable1
ORA-00942: 表或视图不存在
SQL> select * from MYTABLE1;
select * from MYTABLE1
ORA-00942: 表或视图不存在

测试结果汇总:

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

读取
创建 mytable1 MYTABLE1 “mytable1” “MYTABLE1” 
mytable1 √ √ × √ 
MYTABLE1 √ √ × √ 
“mytable1” × × √ × 
“MYTABLE1” √ √ × √

总结:

读取
创建 小写字母 大写字母 加引号小写字母 加引号大写字母 
小写字母 √ √ × √ 
大写字母 √ √ × √ 
加引号小写字母 × × √ × 
加引号大写字母 √ √ × √

分析结论:

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

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

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

 
 
上一篇: 解析:ORACLE性能调整--统计信息的迁移    下一篇: 用一条SQL 实现其它进制到十进制的转换
  相关文档
利用Oracle执行计划机制提高查询性能 04-11
oracle数据库备份与恢复精华资料集锦 (1) 04-15
由浅至深讲解oracle数据库 b-tree索引 (1) 04-16
如何使用分析函数来进行行和列的转换 03-26
讲解往表中顺序插入n条记录的简易方法 08-12
怎样在oracle 10g存储过程中log错误行 04-16
教你快速掌握oracle 9i数据库的移动过程 11-15
oracle数据库中使用dbms_profiler进行调优 05-07
两种方法分析每月工作日计算程序 06-10
linux上安装oracle汉字乱码问题的解决方法 08-07
Oracle中对COLUMNS_UPDATED()返回值解析 06-17
轻松掌握"lag"与"lead"分析函?的用法 02-29
oracle 10g中scn与timestamp的斗转星移 04-28
讲解oracle中job与存储过程的接合用法 03-13
oracle利用传输表空间导出导入数据的步骤 (1) 03-19
oracle数据库中如何使用超过2g的内存 03-31
详细讲解oracle数据库管理员认证方法 04-17
讲解oracle show parameter命令的小技巧 07-30
从多个方面详细讲解sqlplus的使用技巧 (1) 03-04
深入讲解redo log file损坏的处理过程 (1) 03-07
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息