如何将完整查询作为参数传递

时间:2019-10-22 11:57:48

标签: sql scala scala-cats doobie

我从gitlab ci得到一个查询,我想执行它。

如果我对代码进行硬编码,则它是sql“”“”“”语法。但我想将其作为变量(整个查询)传递。 SqlInterperator不获取变量的值,因此返回空片段。

 val q2 = sql"""$query"""
  println(q2) // Fragment("?")

  test("hive ViewTest") {
    q2
      .update
      .run
      .transact(xa)
      .unsafeRunSync() shouldEqual(0)
  }

只是信息,我将这些作为进口

import scala.concurrent.ExecutionContext
import cats.effect.{ContextShift, IO}
import doobie.free.connection.{close, unit}
import doobie.implicits._
import doobie.util.transactor.{Strategy, Transactor}
import org.scalatest.{BeforeAndAfterAllConfigMap, ConfigMap, FunSuite, Matchers}

有可能吗?

1 个答案:

答案 0 :(得分:1)

想通了! 您可以使用Fragment.const API

例如

Fragment.const(query)