一、解决方案

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 表字段顺序_Oracle数据库如何修改表中字段顺序

    Oracle数据库如何修改表中字段顺序 发布时间:2020-07-09 15:53:15 来源:亿速云 阅读:166 本篇文章给大家分享的是有关Oracle数据库如何修改表中字段顺序,小编觉得挺实用的 ...

  2. oracle 对表重建索引,重建特定Oracle表的所有常规索引

    我们有一个将LONG列转换为LOB的迁移脚本,如 Oracle migration guide所述,该表的索引现在需要重建. 假设表名是MY_TABLE,我一直在尝试运行这个脚本: BEGIN FOR ...

  3. Oracle在plsql上数据类型是nvarchar2(2)表的字段,查询时最后一位不显示

    有个表的字段是nvarchar2(2),在我的电脑上查询该字段只显示一位,在同事机器上查询显示正常2位. 解决方案: 在plsql里的工具--首选项---连接里有个选项:   在OCI8上强制使用OC ...

  4. 修改mysql表的字段名_mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  5. oracle查询大小写敏感参数,让Oracle 大小写敏感 表名 字段名 对像名

    一.解决方案 1.在表名.字段名.对象名上加上双引号,即可实现让oracle大小写区分. 2.但是这又引起了另一个问题:在数据库操作中,sql语句中相应的表名.字段名.对象名上一定要加双引号. 解决办 ...

  6. Oracle对表的基本操作

    Oracle对表的基本操作 表名应该以字母开头,可以在表名中包含数字,下划线,#和$等. 一.创建表: 第一种:直接创建 create table 表名 ( field1 type[(size)] [ ...

  7. oracle 表名拼接_Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)...

    排序合并连接 1.2.4.2.1  排序合并连接 排序合并连接(Sort Merge Join)是一种两个表在做表连接时用排序操作(Sort)和合并操作(Merge)来得到连接结果集的表连接方法. 如 ...

  8. oracle设置表字段小写,将oracle中的字段和表名全部修改为小写

    在创建表和表结构的时候,如果想要小写需要在名称上面添加双引号,如果不添加oracle数据库会默认识别为大写 1.将表名和字段名改为大写 批量将表名变为大写 begin for c in (select ...

  9. oracle大表如何快速删除一列,Oracle 对表中的记录进行大批量删除

    Oracle 对表中的记录进行大批量删除数量时,常常采用分批删除,逐次提交.其目的大概有三个原因: Oracle 对表中的记录进行大批量删除数量时,常常采用分批删除,逐次提交.其目的大概有三个原因: ...

最新文章

  1. Oracle CDC (Change Data Capture)更新数据捕获——概述
  2. 网站新手引导/步骤引导
  3. 区块链BaaS云服务(16)天德链TDBC“交易数据”
  4. Python中列表的介绍以及常见操作
  5. 计算机二级access什么时候报名_全国计算机等级考试什么时候报名
  6. MySQL 创建索引和索引效率验证
  7. asp.net 中RadioButtonList的选项改变事件处理(采用jquery操作)
  8. 清华山维eps软件_cass3D三维立体数据采集软件
  9. poj 1862 贪心
  10. OpenCV情绪识别(Python实现,超简单)
  11. FAST-LIO2代码解析(六)
  12. HTML转换为PDF介绍
  13. 【Android App】实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)
  14. R语言学习笔记NO.2 数据处理的基础操作_变量/观测的增改选排
  15. 2018年7月24日安全快讯
  16. 虚拟时钟(Virtual clock)
  17. step fpga上实现呼吸灯和交通灯
  18. Java 基础 利用数组来实现银行注册开户、存钱、取钱
  19. 最全的卫星影像分辨率和传感器参数汇总SPOT、IKONOS、QB、北京一号、ZY-1-02C
  20. 客服系统的电话录音功能作用

热门文章

  1. 60款很酷的 jQuery 幻灯片演示和下载
  2. 实验室里人越来越少啊!
  3. 2字段添加注释_Tableau学习系列(7):计算字段
  4. 安卓APP_ 布局(4) —— TableLayout表格布局
  5. 用于计算的计算机主机,一种用于区块链计算的计算机主机的制作方法
  6. mvc4 html.pager,MVC分页之MvcPager使用详解
  7. 台式计算机机箱都一样吗,别以为组装台式机很简单,机箱选择大有学问
  8. 多线程售票demo,用ReentrantLock实现
  9. cryptico.js java解密_從Cryptico.js中提取RSA私鑰
  10. Ubuntu 开机 Firmware Bug , Bios corrupted