gpt4 book ai didi

scala - 如何使用 Doobie (scala) 动态生成 SQL 语句

转载 作者:行者123 更新时间:2023-12-04 04:18:50 30 4
gpt4 key购买 nike

我有一个问题:

val sql = """select
id,
clientName
from
partnerClients
where
partnerName = ?
"""

我从 excel 文件中读取 partnerName 并为每个执行函数:

case class Partner(name: String)
case class Client(id: Int, name: String)

def queryPartnerClients(partnerName: String) = Query[String, Client](sql, None).toQuery0(partnerName)

def getPartnerClients(partner: Partner): IO[Vector[Client]] = partnerClients(partner.name)
.to[Vector]
.transact(xa)

我用了这个FAQ (如何将任意 SQL 字符串转换为 Query/Query0)

问题是当我从 excel 中获取合作伙伴名称时得到空结果,但是如果我在代码中指定相同的合作伙伴名称,它会起作用,例如:

def partnerClients(partnerName: String) = {
val temp = "Partner Name"
Query[String, Client](sql, None).toQuery0(temp)
}

我以为是编码问题,我尝试修复它

def partnerClients(partnerName: String) = {
val temp = new String(partner.getBytes("Windows-1251"), "UTF-8")
Query[String, Client](sql, None).toQuery0(temp)
}

但结果是一样的——空集。

最佳答案

我使用 this answer打开日志记录,发现我发送的参数包含空格。 Trim 函数修复了它

关于scala - 如何使用 Doobie (scala) 动态生成 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944522/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com