utf8mb4_unicode_ci編碼異常問題

使用 mariadb  要篩選的欄位為chart.id   編碼為 utf8mb4_unicode_ci

做一個參數'${客戶}  要在填報中做補零的修改   

where

    chart.id = LPAD(LTRIM(CAST( '${客戶}' AS CHAR)),8,'0')

要在填報中做補零的修改 

ex: 輸入 19 出現  00000019

然後就出現下列錯誤

错误代码:11300001 数据集配置错误

java.sql.SQLException: Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

FineReport Simmoo 发布于 2021-10-5 20:59
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
尛鬼Lv5中级互助
发布于2021-10-5 22:42
mariadb是mysql的分支,lpad是oracle的函数。不是mysql的内置函数,所以报错了
  • Simmoo Simmoo(提问者) 感謝您的回覆, 這部份~我的DB都沒用到oeacle的東西~ 不太了解 (utf8mb4_general_ci,IMPLICIT)這是那個DB的東西??
    2021-10-06 09:57 
  • 尛鬼 尛鬼 回复 Simmoo(提问者) 等式两边,一边是utf8mb4_unicode_ci,IMPLICIT编码,一边是utf8mb4_general_ci,IMPLICIT编码,把其中一边转换一下试试吧
    2021-10-06 10:04 
  • Simmoo Simmoo(提问者) 回复 尛鬼 我的判斷式是 chart.id = LPAD(LTRIM(CAST( \'${客戶}\' AS CHAR)),8,\'0\') chart.id是 mariadb 的一個欄位 \'${客戶}\' 這個是我在 數據庫查詢 中的一個自定參數 <-這個要如何修改他的編碼呢?
    2021-10-06 10:22 
  • 尛鬼 尛鬼 回复 Simmoo(提问者) https://www.cnblogs.com/yingsong/p/14613743.html 参考一下这边的吧
    2021-10-06 10:27 
  • Simmoo Simmoo(提问者) 回复 尛鬼 感謝~~正解 解法是 chart.id = LPAD(LTRIM(CAST( \'${客戶}\' AS CHAR)),8,\'0\') COLLATE utf8mb4_unicode_ci
    2021-10-06 11:36 
  • 1关注人数
  • 318浏览人数
  • 最后回答于:2021-10-5 22:42
    请选择关闭问题的原因
    确定 取消
    返回顶部