日韩天堂,国产精品久久久久久久久久一区,羞羞羞网站,自拍视频网站,久久亚洲欧美成人精品,桃花阁成人网在线观看

Hello! 歡迎來到小浪云!


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


avatar
小浪云 2024-12-10 203

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

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

測試期間向我報(bào)告了一個(gè)錯(cuò)誤。使用 jsqlparser 5.0 時(shí)某些查詢會失敗。

這是一個(gè)簡單的演示:

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 風(fēng)格的 convert 語法 convert(expr, type)。它僅支持:

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

jsqlparser 中的當(dāng)前語法:

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

這個(gè)問題有兩種解決方案:

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

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

  3. 修改 jsqlparser 語法以支持 convert(expr, type)
    需要修改語法規(guī)則以支持mysql語法。但是,請小心 transcodingfunction.appendto 方法。當(dāng)前實(shí)現(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)閱讀

主站蜘蛛池模板: 婷婷丁香激情五月 | 亚洲精品乱码久久久久久蜜桃 | 最新亚洲人成网站在线影院 | 亚洲精品短视频 | 国产免费久久精品 | 国产日本欧美在线观看乱码 | 色婷婷色综合激情国产日韩 | 国产一区免费在线观看 | 亚洲欧美婷婷 | 在线观看国产一区亚洲bd | 久热国产vs视频在线观看 | 亚洲永久精品一区二区三区 | 自偷自偷自亚洲永久 | 五月婷婷六月婷婷 | 中文字幕97 | 久热这里只有精品在线 | 宅男视频在线观看免费高清完整 | 色婷婷六月天 | 亚洲欧美精品中字久久99 | 国产成人一区二区三区视频免费蜜 | 欧美色丁香 | 中文字幕在线视频免费 | 男女乱配视频免费观看 | 激情丁香网| 亚洲国产成人久久一区www妖精 | 最新中文字幕一区二区乱码 | 五月天婷婷缴情五月免费观看 | 九月丁香婷婷亚洲综合色 | 国产成人久久综合二区 | 一级在线电影免费播放看 | 亚洲国产综合自在线另类 | 国产精品视频久久 | 亚洲不卡电影 | 国产裸舞福利资源在线视频 | 国产久 | 九九精品免费视频 | 国产精品视频久 | 四虎最新网址入口 | 自拍视频网 | 久在线精品视频 | 美女羞羞免费视频网站 |