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.扩展

视图返回的列名别名示例

我们从上面可以知道:如果要返回指定列名字母的大小,需要我们使用双引号将其包裹。

在调用的时候,也必须使用双引号对列名进行包裹。

否则的话,将会报错。

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2023-08-09 10:01  Marydon  阅读(1217)  评论(0编辑  收藏  举报