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

更新日期:2020年09月12日

问题描述

在 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


ToC

问题描述

问题原因

解决办法

参考文献