Я использую драйвер JDBC sourceforge для базы данных MS SQL, чтобы читать данные, а затем обрабатывать их.Получение странных данных через драйвер JDBC
Это, как данные, считываемые выглядит следующим образом:
def calculateHashedMessages() {
log.info('CalculatedHashedMessages')
def hashedMessages = [:]
def digestCalculator = MessageDigest.getInstance("SHA-1")
db.eachRow("""
select top 1000 phone, text, id
from proxyTable
where dlr_description is null
and processed_at is null
and hashed is null
""") { row ->
hashedMessages[row['id']] = calculateHashForRow(row, digestCalculator)
}
hashedMessages
}
А потом телефон и текст обрабатывается следующим образом:
def calculateHashForRow(row, digestCalculator) {
log.info('calculateHashForRow')
log.info("PHONE: ${row['phone']} || TEXT ${row['text']}")
def phone = row['phone']
def text = row['text']
def token = "${phone}_${text}"
log.info("${token}")
digestCalculator.update(token.getBytes())
//(digestCalculator.digest()).toString()
new BigInteger(1, digestCalculator.digest()).toString(16).padLeft(40, '0')
}
Но это не работает и я выяснил, что для расчета методаHashForRow направляется следующее:
ТЕЛЕФОН: [email protected]
ТЕКСТ: [email protected]
Может кто-нибудь сказать мне, почему это будет содержаться в строке ['phone'] и строка ['text'] вместо значений, вставленных в базу данных?
P.S. этот код не полностью написан мной, и он фактически работает на разных машинах (с одинаковыми настройками), поэтому я немного смущен, почему он здесь не работает.