可以将 uppercase_attribute_name 参数设置为 on,列名将以大写形式返回给客户端 https://docs-opengauss.osinfra.cn/zh/docs/latest/docs/DatabaseReference/%E5%...
但是开启后,select col1 as "col1", col2 as "col1" from tab 的场景,仍会返回大写的 COL1 作为列名。暂时无法区分是否加了双引号。 该参数的原则是,如果将要打印的列名是全小写的,就改成全大写返回。
-----邮件原件----- 发件人: mahaibo2004 mahaibo2004@163.com 发送时间: 2024年8月22日 19:37 收件人: community@opengauss.org 主题: [Community] oracle迁移至opengauss数据集列名大小写问题
您好,我有个项目从Oracle迁移至opengauss,该项目为java项目,采用框架spring+mybatis。
项目中好多SQL在mybatis中返回数据类型为java.util.Map,这些SQL以前查询Oracle,返回数据集列名为大写,迁移至opengauss后,返回数据集列名变小写,导致原应用程序无法正常读取结果集。
如SQL:select col1, col2 from tab
查询Oracle数据表返回类似以下数据集:
[{"COL1":"xx","COL2":"xx"} ...]
迁移至opengauss后返回类似下数据集:
[{"col1":"xx","col2":"xx"} ...]
有个办法是,通过增加列别名实现返回数据集列名为大写,将SQL改为以下格式:
select col1 as "COL1", col2 as "COL2" from tab
采用该方法,考虑到项目中SQL太多,全部修改需要很大工作量。
还有办法是添加Mybatis新的ObjectWrapperFactory派生类,将Map中小写key改为大写key,但该方法会影响到类似以下SQL结果集:
select col1 as "col1", col2 as "col1" from tab
该方法会将这些SQL结果集列名全部变为大写,导致原程序无法正常读取数据。
想问一下,是否有快捷办法,让mybatis读取opengauss,如果SQL中未指定带双引号别名,返回的java.util.Map结果集中,所有列名变为大写? _______________________________________________ Community mailing list -- community@opengauss.org To unsubscribe send an email to community-leave@opengauss.org