有大佬用 go 操作 doris 吗?问个入门问题

8 天前
 zong400

使用 xorm 和 gorm 操作 doris2.0 都不成功,看文档没有说支持 doris ,但是 doris 本身应该高度兼容 mysql 的吧,这些 orm 框架这么严格?还是代码上有问题?

xorm code:

func SelectAd() {
	engine := _init_db("10.22.xx", "9030", "abc")

	ad := new(FlowAdUrlStat)
	if _, err := engine.Where("opt_YYYYMMDD=?", 20240626).Get(ad); err != nil {
		log.Fatal(err)
	}

	fmt.Println(ad)
}

报错: 2024/06/27 10:55:37 Error 1105 (HY000): errCode = 2, detailMessage = Only support prepare SelectStmt point query now

gorm code:

	var ad FlowAdUrlStat

	stmt := db.Session(&gorm.Session{DryRun: true}).Where("opt_YYYYMMDD = ?", 20240626).Take(&ad).Statement
	fmt.Println(stmt.SQL.String()) 
	fmt.Println(stmt.Vars)         

	if err := db.Where("opt_YYYYMMDD = ?", 20240626).Take(&ad).Error; err != nil {
		log.Fatal(err)
	}

	fmt.Println(ad)

报错:

output:

Type 'dlv help' for list of commands.
SELECT * FROM flow_ad_url_stat WHERE opt_YYYYMMDD = ? LIMIT ?
[20240626 1]
2024/06/26 18:07:03 Error 1105 (HY000): errCode = 2, detailMessage = Syntax error in line 1:
...RE opt_YYYYMMDD = ? LIMIT ?
^
Encountered: ?
Expected

2024/06/26 18:07:03 D:/goproject/cloudsvc/dbutils/mysqlutil.go:63 Error 1105 (HY000): errCode = 2, detailMessage = Syntax error in line 1:
...RE opt_YYYYMMDD = ? LIMIT ?
^
Encountered: ?
Expected

[58.356ms] [rows:0] SELECT * FROM flow_ad_url_stat WHERE opt_YYYYMMDD = 20240626 LIMIT 1
Process 48512 has exited with status 1
Detaching
961 次点击
所在节点    Go 编程语言
3 条回复
Jim2Chen
8 天前
蹲一个,我也很想知道
MoYi123
8 天前
报错原因不是都写了吗?
OLAP 数据库不用 prepare 模式也能理解吧.
zong400
8 天前
@MoYi123 试了 gorm 的 db.Raw 也是报错
```
if err := db.Raw("select * from flow_ad_url_stat limit 1").Scan(&ad).Error; err != nil {
log.Fatal(err)
}


2024/06/27 15:29:37 Error 1105 (HY000): errCode = 2, detailMessage = Only support prepare SelectStmt point query now

2024/06/27 15:29:37 D:/goproject/cloudsvc/dbutils/mysqlutil.go:59 Error 1105 (HY000): errCode = 2, detailMessage = Only support prepare SelectStmt point query now
[63.082ms] [rows:-] select * from flow_ad_url_stat limit 1
```

倒是 xorm 的可用,但是不能装进 struct ,感觉有些别扭。

result, err := engine.QueryString("select * from flow_ad_url_stat limit 1")

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1053018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX