首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SonarQube和Oracle12C

SonarQube和Oracle12C
EN

Stack Overflow用户
提问于 2018-08-31 23:11:13
回答 1查看 511关注 0票数 0

我正在尝试使用7.1 docker官方镜像设置一个SonarQube服务器,该镜像使用AL32UTF8字符集连接Oracle12C 12.2.0.1数据库。问题是,UTF8在oracle中已被弃用,取而代之的是AL32UTF8,这几乎相同,但有更多的空间来存储数据。尝试启动声纳服务器时抛出错误:"web服务器启动失败: Oracle NLS_CHARACTERSET不支持UTF8: WE8MSWIN1252“。我找不到任何文档或解决方法来解决此问题。如果有人有这样的经历或有任何线索,将是非常有帮助的。我受够了这个问题,找不到解决办法。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 10:44:29

终于能够解决这个困扰我的问题了。Sonarqube执行验证以确保数据库支持UTF8编码:

代码语言:javascript
复制
    private void expectUtf8(Connection connection) throws SQLException {
    String charset = this.getSqlExecutor().selectSingleString(connection, "select value from nls_database_parameters where parameter='NLS_CHARACTERSET'");
    if (!StringUtils.containsIgnoreCase(charset, "utf8")) {
        throw MessageException.of(String.format("Oracle NLS_CHARACTERSET does not support UTF8: %s", charset));
    }
}

如果您看到问题中显示的错误,请在您的数据库上运行以下查询:**select value from nls_database_parameters where parameter='NLS_CHARACTERSET'**,以查找您的数据库拥有的字符集。使用上一次查询得到的值来检查字符集。在我的特定情况下,结果是WE8MSWIN1252,这就是为什么我会得到这个错误。因此,将NLS_CHARACTERSET设置为AL32UTF8修复问题。希望这能帮助到外面的人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52118368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档