最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

让Oracle大小写敏感表名字段名对像名

来源:动视网 责编:小采 时间:2020-11-09 08:28:29
文档

让Oracle大小写敏感表名字段名对像名

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


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

文档

让Oracle大小写敏感表名字段名对像名

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

最新推荐

猜你喜欢

热门推荐

专题
Top