
可以将 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