【Golang】使用godror操作Oracle数据库
【Golang】使用godror操作Oracle数据库
由于Oracle通常用于大型企业和特定行业而且具有独特的特性和复杂性,golang
中我们比较易用的gorm
,ent
,xorm
等orm库都不支持。本文选择了较为成熟的驱动库:github/godror/godror
,该库相对sijms/go-ora
较为复杂,运行时需要依赖环境。
如图所示,godror
虽然在编译时只需要安装 gcc
(该过程本文不再演示),但在运行时却需要依赖 ODPI-C。一番折腾下来还是有些繁琐,本文将整个操作步骤记录下来,与需要的 Go 开发者分享。
说明文档:[2. Installing ODPI-C ](.html)
下载地址:Oracle Instant Client Downloads
windows
- 下载
- 解压
- 配置环境变量
说明:
Linux(Ubuntu)
- 下载包
- 解压
root@DESKTOP-BB0KRFQ:/home/oracle# ls
instantclient-basic-linux.x64-2.5.0.24.07.zip
root@DESKTOP-BB0KRFQ:/home/oracle# unzip instantclient-basic-linux.x64-2.5.0.24.07.zip
- 配置环境变量
root@DESKTOP-BB0KRFQ:/mnt/c/Users/Administrator# vim ~/.bashrc
添加
代码语言:javascript代码运行次数:0运行复制export LD_LIBRARY_PATH=/home/oracle/instantclient_2_5:$LD_LIBRARY_PATH
使更改生效
代码语言:javascript代码运行次数:0运行复制source ~/.bashrc
依然报错
代码语言:javascript代码运行次数:0运行复制ERRO[0000] dbes dsn="test/test12@20.10.120.190:21521/helowin" err="ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle Client library: \"libaio.so.1: cannot open shared object file: o such file or directory\". See .html#linux for help" ="连接失败" log_file="/mnt/d/projects/dbes/backend/internal/apiserver/store/database/driver/driver.go:52"
根据报错和查看oracle可知,还需要安装libaio1
apt-get update
apt-get install -y libaio1
github/godror/godror
代码:
代码语言:javascript代码运行次数:0运行复制package main
import (
"database/sql"
"fmt"
"log"
_ "github/godror/godror"
)
func main() {
// 数据库连接字符串
dsn := "user/password@host:port/service_name"
// 连接到数据库
db, err := sql.Open("godror", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 测试连接
err = db.Ping()
if err != nil {
log.Fatal(err)
}
fmt.Println("成功连接到 Oracle 数据库!")
// 执行查询
rows, err := db.Query("SELECT column_name FROM table_name")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 处理查询结果
for () {
var columnValue string
if err := rows.Scan(&columnValue); err != nil {
log.Fatal(err)
}
fmt.Println(columnValue)
}
// 检查查询过程中是否发生错误
if err := rows.Err(); err != nil {
log.Fatal(err)
}
}
运行go run main.go
后已经可以正常使用
前言中提到,Oracle 数据库在 Go 语言中的使用相对复杂,尤其是对于新手开发者而言。通过使用 godror
驱动库,我们可以更方便地与 Oracle 数据库进行交互。本文详细记录了安装和配置的步骤,确保开发者能够顺利完成环境搭建。
在安装 ODPI-C 的过程中,Windows 和 Linux(Ubuntu)的步骤有所不同。Windows 用户需要下载并解压 Oracle Instant Client,并配置相应的环境变量。而 Linux 用户则需要下载相应的包,解压后同样配置环境变量。此外,Linux 用户还需注意安装 libaio1
,以避免连接时出现错误。
在驱动使用部分,我们提供了一个简单的示例代码,展示了如何通过 godror
连接到 Oracle 数据库并执行查询。通过运行 go run main.go
,开发者可以验证连接是否成功,并查看查询结果。
总结而言,虽然使用 godror
操作 Oracle 数据库的过程较为繁琐,但通过本文的指导,开发者可以更轻松地完成环境准备和代码实现,从而专注于业务逻辑的开发。希望本文能为需要的 Go 开发者提供帮助。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 16 条评论) |
本站网友 蝙蝠吃什么食物 | 30分钟前 发表 |
与需要的 Go 开发者分享 | |
本站网友 银耳莲子粥的做法 | 7分钟前 发表 |
Cannot locate a 64-bit Oracle Client library | |
本站网友 西伯利亚训练营 | 2分钟前 发表 |
虽然使用 godror 操作 Oracle 数据库的过程较为繁琐 | |
本站网友 晚上不要照镜子 | 9分钟前 发表 |
ent | |
本站网友 丁博士 | 11分钟前 发表 |
【Golang】使用godror操作Oracle数据库 前言由于Oracle通常用于大型企业和特定行业而且具有独特的特性和复杂性 | |
本站网友 龙湖三千集 | 0秒前 发表 |
ent | |
本站网友 精品课程网站 | 3分钟前 发表 |
port/service_name" // 连接到数据库 db | |
本站网友 易视直播 | 24分钟前 发表 |
确保开发者能够顺利完成环境搭建 | |
本站网友 北大附近租房 | 8分钟前 发表 |
DPI-1047 | |
本站网友 谋杀记忆 | 18分钟前 发表 |
/home/oracle# unzip instantclient-basic-linux.x64-2.5.0.24.07.zip 配置环境变量代码语言:javascript代码运行次数:0运行复制root@DESKTOP-BB0KRFQ | |
本站网友 广州婚车 | 26分钟前 发表 |
一番折腾下来还是有些繁琐 | |
本站网友 怎样去眼袋最有效 | 20分钟前 发表 |
开发者可以验证连接是否成功 | |
本站网友 小脸适合什么发型 | 9分钟前 发表 |
= "user/password@host | |
本站网友 昂立多邦 | 5分钟前 发表 |
o such file or directory\". See .html#linux for help" ="连接失败" log_file="/mnt/d/projects/dbes/backend/internal/apiserver/store/database/driver/driver.go | |
本站网友 可利霉素 | 21分钟前 发表 |
golang中我们比较易用的gorm |