1

Groovy に少し慣れていないため、動的 SQL 文字列を使用して SQL クエリを実行するコードを作成しています。

def executeQuery(String csvQueryInList) {
  def result = sql.rows('SELECT * FROM mySchema.myTable WHERE id IN (?,?)', ['1', '2'])
  return result
}

上記は機能しますが、CSV 文字列であるパラメーター csvQueryInList を使用するようにこのコードを変更したいと思います。

このようなもの....

  def sqlStr = 'SELECT * FROM mySchema.myTable WHERE id IN ('
    def executeQuery(String queryInList) {

        def values = queryInList.tokenize(", ")
        values.eachWithIndex { item, index ->
            sqlStr << '?,'
        }
        sqlStr << ')'

        println "Executing generated query: $sqlStr"
        def result = sql.rows(sqlStr, values)
        return result
    }

しかし、それはうまくいきません。

誰かが私が間違っていることを修正したり、さらに良い方法を提案したりするために手を差し伸べることができますか.

ありがとう

4

1 に答える 1