【发布时间】:2014-10-12 13:47:20
【问题描述】:
我想编写一个 Clojure 查询,以便将 where 子句中的 lnam 和 fnam 参数用双引号引起来。我需要双引号,因为嵌入的名称包含单引号字符,例如“O'BRIEN”。
我一直在查看 Clojure 查询和在字符串中嵌入双引号的示例,但没有找到我想要的示例。
这在lein repl 中运行良好
gic-cmp.core=> (def lnam "O'BRIEN")
#'gic-cmp.core/lnam
gic-cmp.core=> (str """"lnam"""")
"O'BRIEN"
但这不会在下面的查询中产生带引号的字符串。
(defn match-this-rec-with-last
""
[gic-id lnam fnam search-date]
(let [query (str (str "select g.* from gic_employees g where g.processed_date = '" search-date "' ")
(str "and g.gic_id = '" gic-id "' and g.last_name = ")
""""lnam""""
(str " and g.first_name = ")
(str """"fnam"""")
(str " order by g.processed_date desc "))]
(println query)
(j/query db
[query])))
【问题讨论】: