「Jenkins Pipeline」- java.sql.SQLException: Incorrect string value: '\xAC\xED\x00\x05sr...' for column... @20210416


問題描述

在 Jenkins Pipeline 中,我們使用 PreparedStatement 執行 SQL 語句,產生如下錯誤:

java.sql.SQLException: Incorrect string value: '\xAC\xED\x00\x05sr...' for column 'content' at row 1

問題原因

傳入 PreparedStatement 的 Sql 參數並不是 String 類型

使用以下代碼可以驗證,我們傳入 的並不是 String 類型,而是 org.codehaus.groovy.runtime.GStringImpl 類型:

pipeline {
    agent {
        node {
            label 'NODE03-UBUNTU-20.04'
        }
    }
    stages {
        stage ("# 構建開始") {
            steps {
                script {
                    def str1 = "1"
                    def str2 = "2"
                    println "${str1}/${str2}".getClass().toString()
                }
            }
        }
    }
}

解決辦法

解決辦法很簡單,轉換成 String 類型即可:

// 解決辦法
println "${str1}/${str2}".toString()

// 驗證為 String 類型
println "${str1}/${str2}".toString().getClass().toString()

參考文獻

mysql - java.sql.SQLException: Incorrect string value: '\xAC\xED\x00\x05sr...' - Stack Overflow



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM