zoukankan      html  css  js  c++  java
  • 生产环境的sql出现:Illegal mix of collations for operation 'UNION'

    早晨刚来上班没多久,突然收到测试童鞋发过来生产环境的一个报错。

    Illegal mix of collations for operation 'UNION'。

    什么鬼情况,怎么刚上线就出问题了

    我让测试童鞋重现了一下,我监视着服务器的日志。

    我去。还真的有。接下来就开始茫茫找问题路。

    ——————————————————————————————————————————————————

    找问题:

    1.首先网上搜索了下,说是union关联sql里字段编码问题不一致。因为测试环境没有这个问题,我首先定位于数据问题。

      挨个删减查询字段,最后定位到一个字段上,语句是这么写的,snStartDest.一个拼接类型的字段:

    SELECT
        id,
        CONCAT( route_starts, route_dests ) AS snStartDest 
    FROM  A
    UNION  (
        SELECT
            user_id AS id,
            '' AS snStartDest 
       FROM B

    )

    2.在concat里,我单独一个字段都是ok的(CONCAT( route_starts)CONCAT( route_dest)),只是两个字段concat一起是不行的(CONCAT( route_starts, route_dests ))。此时证明已不是数据问题,想起来搜查网上的字段编码问题,决定看下是不是生产环境字段编码确实有问题。

    3.生产环境俩个字段果然不一致,再看了下测试环境是一致的。找到运维童鞋,运维也很蒙圈,什么时候俩字段变了。

      最后在线上环境都改成unicode编码,解决。测试环境编码一直一致。



  • 相关阅读:
    提高程序开发效率的文章
    动网代码备忘录
    asp.net 优化ASP.NET应用程序性能研究与探讨
    如何提高写程序的效率与减少 bug 的错误率
    .NET之默认依赖注入
    linux挂载windows共享文件夹
    如何修改数据库时区
    Oracle 数据库11g新特性之高效 PL/SQL 编码
    Oracle Data Guard 理论知识
    (转)关于PL/SQL Developer中对存储过程add debug information
  • 原文地址:https://www.cnblogs.com/sunnyguo/p/12484704.html
Copyright © 2011-2022 走看看