视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
让Oracle大小写敏感表名字段名对像名
2020-11-09 08:28:29 责编:小采
文档


一、解决方案 1、在表名、字段名、对象名上加上双引号,即可实现让oracle大小写区分。 2、但是这又引起了另一个问题:在数据库操作中,sql语句中相应的表名、字段名、对象名上一定要加双引号。 解决办法是:使用\转义。如: String sql = select * from user

一、解决方案

1、在表名、字段名、对象名上加上双引号,即可实现让oracle大小写区分。

2、但是这又引起了另一个问题:在数据库操作中,sql语句中相应的表名、字段名、对象名上一定要加双引号。

解决办法是:使用"\"转义。如:

String sql = "select * from userinfo where \"loginId\"=? and loginpwd=?";


二、详解

一 般情况下,使用者在进行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在读取数据字典时只要发现对像名里有小写字母或者是除字母汉字以外开头的字符都认为是大小写敏感的,并且要求在访问时需要加上引号。

下载本文
显示全文
专题