久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


JSqlParser-MySQL Convert(expr,type) 函數(shù)的問題


avatar
小浪云 2024-12-10 148

JSqlParser-MySQL Convert(expr,type) 函數(shù)的問題

我們最近將基礎(chǔ)框架升級到了 springboot 3.3.5 和其他相關(guān)庫。

測試期間向我報告了一個錯誤。使用 jsqlparser 5.0 時某些查詢會失敗。

這是一個簡單的演示:

public class test {   public static void main(string[] args) throws jsqlparserexception {     string sql =         "select  convert(if(bill_type = 2, id, ''), char) from dual";     statement statement2 = ccjsqlparserutil.parse(sql);     system.out.println(statement2.tostring());   } } 

問題在于 jsqlparser 5.0 不支持 mysql 風格的 convert 語法 convert(expr, type)。它僅支持:

sql server 風格:convert(type, expr)
字符集轉(zhuǎn)換:convert(expr using charset)
這會影響使用 mysql 的 convert 函數(shù)的查詢,尤其是當表達式很復雜時(例如使用 if 語句)。

jsqlparser 中的當前語法:

{     <k_convert> "("     (         lookahead(coldatatype() ",") (             coldatatype = coldatatype()             "," expression = expression()             [ "," style = <s_long> ]         )         |         (             expression = expression()             <k_using> transcodingname=identifierchain()         )     )     ")" } 

這個問題有兩種解決方案:

  1. 使用 cast 而不是 convert
    只需將 convert(expr, type) 替換為 cast(expr as type) 即可。如果您使用 mysql

  2. ,這是最簡單的解決方案

  3. 修改 jsqlparser 語法以支持 convert(expr, type)
    需要修改語法規(guī)則以支持mysql語法。但是,請小心 transcodingfunction.appendto 方法。當前實現(xiàn)生成 convert(type, expr),這在 sql server 中是合法的,但在 mysql 中是非法的

    public StringBuilder appendTo(StringBuilder builder) {         if (isTranscodeStyle) {             return builder                     .append("CONVERT( ")                     .append(expression)                     .append(" USING ")                     .append(transcodingName)                     .append(" )");         } else {             return builder                     .append("CONVERT( ")                     .append(colDataType)                     .append(", ")                     .append(expression)                     .append(transcodingName != null && !transcodingName.isEmpty()                             ? ", " + transcodingName                             : "")                     .append(" )");         }     } 

相關(guān)閱讀

主站蜘蛛池模板: 色偷偷亚洲男人天堂 | 国产精品一区二区丝瓜 | 成人毛片免费视频 | 99视频在线精品免费 | 草草久久97超级碰碰碰免费 | 欧美日韩美女 | 欧美性久久久久 | 久久久精品久久久久三级 | 一级毛片 在线播放 | 久久亚洲国产精品一区二区 | 国产在线一区二区三区 | 日韩中文字幕在线亚洲一区 | 久久久视频在线 | 亚洲一区二区三区精品国产 | a毛片免费播放全部完整 | 欧美高清视频一区 | 韩日三级视频 | 在线精品视频免费观看 | 亚洲综合色自拍一区 | 高清在线精品一区二区 | 亚洲精品综合一区二区三区 | 永久精品免费影院在线观看网站 | 亚洲午夜大片 | 未满14周岁啪啪网站 | 国产亚洲高清不卡在线观看 | 精品久久久久久综合网 | 91精品久久久| 久久综合本色宗合一本色 | av成人天堂 | 一级片免费在线播放 | 成人免费公开视频 | 九九热精品在线 | 午夜爽爽爽男女免费观看hd | 色综合久久88色综合天天 | 日韩中文字幕在线观看视频 | 一级毛片免费不卡在线 | 欧洲美女a视频一级毛片 | 亚洲国产高清在线精品一区 | 香蕉国产人午夜视频在线 | 天堂一区二区三区精品 | 一级毛片真人免费播放视频 |