与 golang 驱动程序一起使用的雪花占位符格式
Posted
技术标签:
【中文标题】与 golang 驱动程序一起使用的雪花占位符格式【英文标题】:snowflake placeholder format to use with the golang driver 【发布时间】:2020-06-18 17:36:53 【问题描述】:我无法找到用于 golang 雪花驱动程序的占位符格式。 https://godoc.org/github.com/snowflakedb/gosnowflake 这里的文档目前没有说明任何关于它的内容,他们的示例 https://github.com/snowflakedb/gosnowflake/tree/81a8e973392a6d20381ab3797de63ba584f8d0d6/cmd 也没有使用它。我应该使用“?”还是“%s”?
【问题讨论】:
【参考方案1】:Snowflake 的 Go 驱动程序 implements golang database/sql interfaces。
假设通过占位符格式您正在谈论SQL statement bind variables,您可以使用standard variable syntax supported by Snowflake:?
(未命名,位置),或:name
(命名):
位置样式示例:
db.ExecContext(ctx, `
delete from Invoice
where
TimeCreated < ?
and TimeCreated >= ?;`,
endTime,
startTime,
)
命名样式示例:
db.ExecContext(ctx, `
delete from Invoice
where
TimeCreated < :end
and TimeCreated >= :start;`,
sql.Named("start", startTime),
sql.Named("end", endTime),
)
gosnowflake 模块文档 carry an indirect reference 对此进行了说明,但由于它们实现了 database/sql
接口,因此它们隐式支持将常规和命名参数与语句一起发送到 Snowflake 服务。
【讨论】:
以上是关于与 golang 驱动程序一起使用的雪花占位符格式的主要内容,如果未能解决你的问题,请参考以下文章