如何:让Oracle表及字段显示为区分大小写
相信大部分用惯了SQL Server的人,刚开始用Oracle肯定会特不习惯,因为通常情况下,Oracle建的表名和字段名都会自动给我们转换为大写的。如下图所示:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
说实话,笔者当初第一次接触Oracle的时候,也看着很不爽,可那会也只能无奈,因为没法解决。所以心理一直在想,如果能显示成区分大小写的该多好啊,于是我实现了心中的愿意,如下图所示:
期盼已久的效果终于实现了,特别高兴,所以我要告诉大家实现原理,以期待更多像我一样追求美观的人得到 一种心理安慰。
实现方式:
不再用PL-SQL直接建表了,而改用PD(Power Desginer)的方式建表。因为我发现不管我们是否大小写区分PL-SQL都会自动帮我们转换称大写的了。PD自动生成的SQL如下:
create table "TDepartment" (
FID NVARCHAR2(36) not null,
"FText" NVARCHAR2(50) not null,
"FParentID" NVARCHAR2(36) not null,
"FLevel" NUMBER,
"FAutoCode" NVARCHAR2(100),
"FCode" NVARCHAR2(50),
"FLeaf" NUMBER default 1 not null,
"FRemark" NVARCHAR2(500),
"FDataServerIP" NVARCHAR2(100),
"FDataServerPort" NVARCHAR2(10),
"FMediaServerIP" NVARCHAR2(100),
"FMediaServerPort" NVARCHAR2(10),
"FDataServer" NVARCHAR2(200),
"FMediaServer" NVARCHAR2(200),
constraint PK_TDEPARTMENT primary key (FID)
);
(字段说明的脚本在这就省略了)
原理分析:
PL自动生成的创建表的脚本中,表名和字段名都加了双引号。双引号在Oracle中表示区分大小写,Oracle是严格区分大小写的,未使用双引号时默认全部大写。可能很多人都会误认为oracle是不区分大小写的,原因是我们在写查询语句的时候,大小写无所谓,结果都是一样的,这只是个表面现象,只要你不使用双引号表示区分大小写,oracle会默认把你写的脚本全部转换为大写的。从下面可以看出:
因为Oracle默认存储为大写形式,所以PL-SQL显示的效果也是大写的。
正是因为区分大小写,所以在Oracle中可以存在大小写并存的同名表或表字段。
到这里大家我想大家应该明白了,怎么使Oracle区分大小写了,就是使用双引号。
思考:既然Oracle可以区分大小写,那为什么大家在使用的时候都宁愿选择看着不舒服的大写形式呢?下面这个实验我们将给出答案,如下图所示:
正如上面所讲,如果我们不加双引号,那么Oracle会默认把表名和字段名全部转换为大写形式。
最简单的查询语句:select * from TCamera
会报错,提示:ORA-00942:table or view does not exist 表或试图不存在
在这个时候,我们看提示应该很容易明白了,原因是在Oracle中的user-tables 不存在我们要查询的TCAMERA[自动转换称大写的]表。
那么正确的语句应该是:select * from "TCamera" 需要加双引号
这个时候就感觉很不舒服了,那写查询多不方便呀,而且不仅是表名需要使用双引号,如果查询某些特定字段也需要加双引号,那么此时给开发人员将带来诸多的不便。这也就是为什么大家都宁愿选择全部大写的了。明白了吗?
Power Designer的对应设置:
使用PD的人就会有问题了,既然默认PD生成的都是带双引号区分大小写的,那怎么把双引号去掉呢,总不能一个一个改吧?呵呵,既然你想到了,那么Sybase的团队自然也是想到了,所以通过下面的设置步骤,就能去掉PD自动生成脚本的双引号了。
找到菜单Database—>Edit Current DBMS 会打开DBMS属性设置窗口,找到ScriptàSqlàCaseSensitivityUsingQuote,选择No,即大小写不区分。如下图所示:
点击确定后,系统会提示是否保存设置,请点击"是"。
这个时候我们来对比看一下生成的SQL:
设置前,PD默认区分大小写,表名和字段都带双引号,如下图所示:
设置后,不区分大小写,所有的都不带双引号,所以生成的表及其字段都将默认被Oracle转换为大写的形式。如下图所示:
到这里,PD和Oracle就对应起来了,喜欢什么形式的就自己动手去设置吧。
最后我们对比一下SQL Server 和Oracle在查询具体内容上的区别,让大家更深刻地认识到我们平时可能存在的误解。
这表明,SQL Server在表字段内容中,其实也是不区分大小写的。但是Oracle就不同,同样的状况,Oracle肯定查询不到数据,因为Oracle严格区分大小写。不信自己可以去试试。
转自: 飞天心宏 2011-12-21
转载于:https://www.cnblogs.com/Aixi/p/3986326.html
如何:让Oracle表及字段显示为区分大小写相关推荐
- oracle 主键 删除表_oracle删除表字段和oracle表增加字段
这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧 添加字段的语法:alter table tablename add (column datatype [def ...
- oracle中更改表名语句,转:取Oracle 表名 字段名 注释等实用语句
1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type fromuser_ind_columns t,user_indexes i where t.inde ...
- oracle 增加不了新列,【云和恩墨大讲堂】谈Oracle表新增字段的影响
编辑手记:本文来自上周四云和恩墨大讲堂课程的整理.作者通过锁.索引.约束等的情况验证了表的新增字段对不同版本的Oracle数据库产生的影响. 作者简介刘晨,网名bisal,Oracle 10g/11g ...
- arcgis中属性表某字段显示出现遗漏问题的解决办法(地图不显示澳门特别行政区)
在arcgis中,中国省份的shapefiie文件的属性表含有各个省份及特别行政区,如下表. 但让 name 字段显示之后,遗漏了澳门特别行政区,如下图所示. 在网上查找方法,说是应该将shpaefi ...
- 关于Oracle表及字段的注释 转
1.给表加注释 COMMENT ON TABLE land.landsellmend IS '补办出让'; 2.查看表的COMMENT SELECT * FROM USER_TAB_COMMENTS ...
- hive表列字段显示
要在hive表中显示列名,我们可以在hive命令行中开启 hive> set hive.cli.print.header=true; 但显示的列字段会带表名,列名会很冗长,所以要去除掉表名,单独 ...
- oracle表扩充字段,oracle删除表字段和oracle表增加字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter ...
- oracle 创建自增列及其oracle表的字段的子节点的查询
首先创建序列: create sequence 序列名 start with 1 increment by 1 nomaxvalue nocycle 其次创建触发器: create or replac ...
- Oracle在plsql上数据类型是nvarchar2(2)表的字段,查询时最后一位不显示
有个表的字段是nvarchar2(2),在我的电脑上查询该字段只显示一位,在同事机器上查询显示正常2位. 解决方案: 在plsql里的工具--首选项---连接里有个选项: 在OCI8上强制使用OC ...
最新文章
- 复杂SELECT语句执行过程
- JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)
- Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment
- 使用Golang搭建gRPC服务提供给.NetCore客户端调用
- c语言某一行不被优化,C语言优化小技巧
- 多进程服务器(python 版)
- 计算机安装网络设置,网络上安装了Windows操作系统的计算机,可..._网络编辑_帮考网...
- 图形学的几个非常有用的转换
- 空间留言工具_新房,拖把等清洁工具都放哪?
- 25. Element nextSibling 属性
- 时速云Kubernetes进阶培训 第三期
- Coremail邮件安全:2022重保最新钓鱼案件典型攻击手法复盘
- 集合经验模态分解matlab,emd经验模态分解matlab下载地址
- 中国裁判文书网爬虫分析(2019年7月版)
- kubectl exec
- 考研英语复试口语常见问题(上岸必备)
- ThreeJS-太阳球围绕旋转(二十四)
- jfinal连接oracle_JFinal中多数据源的配置[本文是mysql+oracle]
- [Android答答答]Handler是什么?
- linux下批量改文件名命令,Linux 批量更改文件名命令
热门文章
- JAVA获取安卓系统下usb_Android 获取 usb 权限的两种方法
- inno setup安装之前关闭mysql_innosetup安装之前关闭进程
- 响应式html5框架,15个最好的HTML5前端响应式框架(2014)
- Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...
- 增城seo搜索引擎优化_搜索引擎seo优化主要从哪里入手?
- js访问对方手机文件夹_前端开发——解决vue首次访问太慢的问题
- java追加到文件末尾_Java追加到文件
- ssh无密码登录_3个简单步骤即可完成无密码SSH登录
- python 按位运算符_Python按位运算符
- angularjs绑定属性_AngularJS隔离范围属性绑定教程