oracle 返回查询列名如何以小写英文字母形式返回?(区分大小写)
1.情景展示
在Oracle语法当中,它是区分字段名称大小写的(mysql不区分大小写)。
我们可以看到:
在Oracle当中,虽然查询列名一个用的是驼峰命名法,一个用的是小写。
但是,Oracle执行完毕,返回的列名全部转换成了大写。
有时候,为了方便别人调用(数据库间直接调用,比如:我方写好视图,供第三方使用),需要定义好返回的列名。
Oracle默认返回的全是大写名称的字段,如何解决?
2.具体分析
在Oracle当中,查询返回的列名或者别名,如果是字母的话,默认返回的是大写字母,尽管你写的是小写字母。
如果需要强制其以指定大小写形式的别名,返回的话,我们需要在别名两侧使用双引号包住就可以啦。
3.解决方案
用双引号包住别名,Oracle就知道它是要区分大小写的,便会采用其作为列名,不再将其转换成大写。
SELECT SYSDATE "currentTime",
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('2000-09-01', 'YYYY-MM-DD')) / 12) AS "age"
FROM DUAL
这一点,我们在plsql当中可以通过转大写来验证。
选中上面SQL,转大写。
我们就会发现:
无论是被单引号包裹的,还是被双引号包裹的英文字母,都不会被强制转换成小写。
另外说一点:
在Oracle当中,为表新增或修改字段名称时,尽管你写的英文字母是小写,在保存之后,会统一变成大写。
还有一点:
如果是无论是to_char()还是to_date(),指定日期的格式化形式时,年月日时间秒等使用大小写都不影响。
yyyy-mm-dd hh24:mi:ss
YYYY-MM-DD HH24:MI:SS
4.扩展
视图返回的列名别名示例
我们从上面可以知道:如果要返回指定列名字母的大小,需要我们使用双引号将其包裹。
在调用的时候,也必须使用双引号对列名进行包裹。
否则的话,将会报错。
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/17616135.html