强烈建议连接 oracle 数据库的 golang 用户使用这个库 https://github.com/sijms/go-ora
这个是纯 golang 编写的 oracle 驱动
也就是说不用装 instant client 了 !!!
我推测是通过抓包写的
之前的用于连接 oracle 两个库,都有些不方便的地方
- github.com/godror/godror
- 需要安装 instant client
- 因为依赖 CGO,MacOS 无法跨平台编译 linux 程序,我每次是 git push 后,到 linux 平台拉代码编译
- CentOS 6 不支持,因为 GLIBC 版本太低,服务器升级风险高
- github.com/mattn/go-oci8
- 需要写 OCI 配置文件
- 需要安装 instant client
食用
需要使用 v2 版本1
go get github.com/sijms/go-ora/v2
搭配 xorm 食用
xorm 官网上没写支持 go-ora 驱动,但是在国内的 gitea 仓库 README 上写了支持 go-ora
是 2月4日 的 commit 支持的,目前(2023年2月21日)还没有发布版本
https://gitea.com/xorm/xorm/commit/0c9963c6379477764ab4adbab74195f92d3b89dc
通过指定 commit 方式导入包
1 | go get xorm.io/[email protected] |
连接
连接串有稍许变动
godror1
2
3
4
5const driverName = "godror"
oralInfo = fmt.Sprintf("%s/%[email protected]%s:%d/%s", user, password, host, port, dbname)
db, err := xorm.NewEngine(driverName, oralInfo)
go-ora1
2
3
4
5const driverName = "oracle"
oralInfo = fmt.Sprintf("oracle://%s:%[email protected]%s:%d/%s", user, password, host, port, dbname)
db, err := xorm.NewEngine(driverName, oralInfo)