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

How to pass complete query as a parameter

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

如果我将查询硬编码为 sql"""""" 语法,它就可以工作。但我想将它作为变量(整个查询)传递。 SqlInterperator 不接受变量的值,因此 returns 一个空片段。

 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}

可能吗?

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

例如

Fragment.const(query)