oracle对包括表名在内的所有对象名的大小写在一般情况下都是不区分的,因为它默认会将所有小写对象名转化为大写!
因为这个特性,导致表面看来oracle好像是不区分大小写的。但实际上oracle内部有两种对象名处理方式:加引号方式和不加引号方式。
(1)当不加引号时,对象名只能使用以字母开头的普通字符,并且会自动将所有小写字符转为大写字符;
(2)当加引号时,对象名可以使用任何字符,包括各种符号字符,同时也区分大小写!加引号可以理解为,严格按照引号里面的字符名进行建表
在写sql时候,无论表名和字段名都不要加引号,这样比较安全。
另外,在使用pd生成sql时,应该要注意一下,pd默认是会添加引号的。
摘抄如下:
用PowerDesigner生成数据库建表SQL脚本时,尤其是Oracle数据库时,表名一般会带引号。其实加引号是PL/SQL的规范,数据库会严格按照“”中的名称建表,如果没有“”,会按照ORACLE默认的设置建表(DBA STUDIO里面),默认是全部大写,这样,在ORACLE数据库里的字段就如“Column_1”。如果你把引号去掉,ORACLE自动默认为全部大写,即“COLUMN_1”,所以这段SQL在PL/SQL中执行的时候是没有任何问题的,如果不加引号,在PL/SQL会自动识别为大写。
如果加了引号,sql或者hql查询“Column_1='XXX'”时,就会报错:ORA-00904: "COLUMN_1": 无效的标识符,除非写为“‘Column_1’='XXX'”。也就是说,如果创建的时候加了引号,查询和使用的时候也要加引号,所以,如果没有特别要求,还是不加引号的方便。
这个问题是生成脚本格式的问题,因此,我们可以尝试在DBMS配置文件中修改相应的格式设置来解决这个问题。选择DBMS Properties,选择Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”,改为“No”,点击【应用】按钮。这样就可以不添加引号了!
分享到:
相关推荐
### 如何让Oracle表及字段显示为区分大小写 #### Oracle内部表存储原理与区分大小写的实现 在深入了解如何让Oracle表及字段显示为区分大小写之前,我们需要先理解Oracle内部是如何存储表和字段的。Oracle数据库...
### Oracle 11g 密码区分大小写问题详解 #### 一、Oracle 11g 版本特性概述 自 Oracle 11g 版本开始,Oracle 数据库默认开启了密码大小写敏感(case sensitivity)功能。在早期版本如 10g 及其之前的版本中,默认...
了解这个机制对于解决跨数据库迁移问题或处理特殊字符的命名至关重要,特别是从其他对大小写敏感的数据库(如SQL Server)迁移到Oracle时。在开发和维护Oracle数据库时,应尽量避免使用引号标识对象名,除非有特殊...
这意味着如果你创建了一个名为"USER"的表,然后尝试引用"User"或"USER"(大小写不同),Oracle可能无法识别到这个表,从而导致错误。为了解决这个问题,你可以采取以下策略: 1. **统一命名规范**:在创建数据库...
### ORACLE中数据字典大小写问题 #### 数据字典大小写敏感性 在Oracle数据库中,对于数据字典中的表名和字段名,Oracle实际上处理这些名称时默认是大小写敏感的。这意味着如果创建了一个名为`myTable`的表,并且...
在Oracle数据库中,为含有千万级别记录的大表创建索引是一项挑战性任务,尤其是对于那些处于高并发在线生产环境中的表。本文将详细介绍如何为一个核心大表(INFO_CUSTOMER)创建一个全局B树索引,并在此过程中尽可能...
总的来说,Oracle中进行金额大小写的转换涉及到对数字字符串的处理、自定义函数的编写以及对汉字数字的映射理解。虽然Oracle本身不直接提供这样的功能,但我们可以通过PL/SQL编程来实现。希望这个示例能帮助你理解并...
oracle 默认不区分大小写,优化了datax源码使其区分大小写。 详情参考博客: https://blog.csdn.net/qq_38688267/article/details/140986163 https://blog.csdn.net/qq_38688267/article/details/140986163 ...
当用户执行了诸如 Order by 等命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。 * 用户表自定义空间:用户可以通过 ...
Oracle 表空间命令语句大全提供了 Oracle 数据库管理的重要操作,包括建立表空间、建立 UNDO 表空间、建立临时表空间、改变表空间状态、删除表空间、扩展表空间和查看表空间信息等。这些命令对于 Oracle 数据库管理...
- **USERS**:在Oracle 10g及以上版本中,用户的大部分数据都从`SYSTEM`表空间分离出来,放置在这个表空间中。 #### 二、Oracle的存储结构 Oracle数据库的存储结构可以从逻辑和物理两个层面来理解。 1. **逻辑...
Oracle数据库中的表分区是一种高级组织技术,它通过将表的大数据集划分为较小的、更易于管理的部分(即分区),从而提高查询性能和可管理性。表分区可以按照不同的策略进行划分,如范围分区、列表分区等。 #### 二...
通过将一个大型的表或者索引分割成多个较小且可管理的部分,分区技术能够显著提升数据库的性能、可用性和可维护性。 ##### 分区的作用: 1. **增强可用性**:即使表的一部分出现故障,其他部分的数据依然可以被...
Oracle 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表将被最先处理。在 FROM 子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表。 2. 使用 Cache Buffer Oracle ...
它将一个大表逻辑上划分为较小、更易管理和查询的部分,每个部分称为一个分区。表分区能够显著提升查询性能、优化存储效率,并简化大规模数据的维护工作。 在Oracle中,表分区有多种类型,包括: 1. **范围分区**...
### Oracle表空间建立方法 #### 一、Oracle 表空间概念与作用 在Oracle数据库管理系统中,表空间是逻辑存储单元的基本单位。每个数据库至少包含一个表空间,默认情况下为`SYSTEM`表空间。表空间由一个或多个数据...
在实际应用中,Oracle数据库管理员还需要考虑表空间的备份、恢复、性能优化等方面的问题。理解并熟练掌握表空间的管理和权限分配是保证数据库高效运行的关键。通过学习和实践,你可以更好地理解和管理Oracle数据库中...
在Oracle数据库管理系统中,查询表以及统计数据库的使用情况是一项关键任务,有助于管理员监控资源使用状况、优化性能并规划存储。本文将深入探讨如何查询Oracle表空间的使用情况,以及这个过程中的重要知识点。 ...
--去掉字符大小写敏感设置:禁止密码大小写敏感 show parameter sec_case_sensitive_logon alter system set sec_case_sensitive_logon=false ; --Oracle11g中Exp空表的问题:禁用插入数据时才分配空间功能 show ...