使用 Go-Ora 连接到 Oracle 23ai 数据库

使用 Go-Ora 连接到 Oracle 23ai 数据库

ShawnYan Lv.6

前文 《 一鍵啓動 Oracle 23c Free 》 介绍了如何使用容器技术快速拉起 Oracle 23c 数据库。

这个开发者版本可以很便捷的拉起、测试、销毁,对开发者是非常友好的。

本文将介绍如何使用 Go 语言构建项目,并连接到 Oracle 数据库。

Go 环境配置

本文使用的是 Go 1.21 版本。

下载安装包,并解压。

1
2
wget https://studygolang.com/dl/golang/go1.21.8.linux-amd64.tar.gz
tar zxf go1.21.8.linux-amd64.tar.gz

将二进制目录添加到环境变量中。

1
2
echo 'export PATH=/home/mysql/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

查看 Go 版本。

1
go version
1
2
$ go version
go version go1.21.8 linux/amd64

创建一个 Go 的测试项目

Go 语言环境配置完成后,我们来初始化一个新项目。

具体步骤如下:

1. 创建项目目录

创建项目目录 mygo

1
2
mkdir mygo
cd mygo

2. 初始化项目

使用 go mod init 命令初始化项目。

1
go mod init github.com/shawn0915/mygo
1
2
$ go mod init github.com/shawn0915/mygo
go: creating new go.mod: module github.com/shawn0915/mygo

3. 创建 Go 文件

创建项目主文件。

1
touch main.go

在主文件中添加如下代码。

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

3. 运行 Go 程序

运行 Go 程序:

1
go run .
1
2
$ go run .
Hello, World!

这将编译并运行 main.go 中的程序,并输出 Hello, World!

相信通过这个小案例,大家已经对 Go 项目有初步的了解。

使用 go-ora 驱动连接到 Oracle

接下来演示如何使用 go-ora 驱动连接到 Oracle 数据库。

go-ora 是由 Go 语言实现的 Oracle 客户端,推荐使用 go-ora v2 版本,对 Oracle 10.2 及以上版本更友好。

下面是代码示例,以供参考。

连接到 Oracle

导入 go-ora 驱动,并创建连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import (
"database/sql"
"fmt"
"log"

goora "github.com/sijms/go-ora/v2"
)

func main() {
// Oracle 数据库连接信息
dsn := go_ora.BuildUrl("${oracle_host}", ${oracle_port}, "${oracle_sid}", "${oracle_user}", "${oracle_password}", nil)

// 创建数据库连接
db, err := sql.Open("goora", dsn)
if err != nil {
log.Fatal(err)
}
defer db.Close()

// 检查连接
err = db.Ping()
if err != nil {
log.Fatal(err)
}
}

这里需要将数据库连接信息替换为实际的值,这段代码中并没有使用其他连接参数,所以最后一个值为 nil

需要注意的是,为了安全起见,不要在代码中硬编码数据库连接信息,这里只是为了演示,建议在正式环境中使用环境变量或配置文件来管理敏感信息。

查看版本信息

创建查询,并将查询结果打印出来。

1
2
3
4
5
6
7
var banner string
querySQL := "SELECT banner FROM v$version"
err = db.QueryRow(querySQL).Scan(&banner)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Oracle Version: %s\n", banner)

运行程序

运行程序,可以得到版本信息。

1
2
$ go run .
Oracle Version: Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free

小结

本文展示了 go-ora 驱动的基本用法。当然还有其他驱动可以使用,比如 GODROR

GODROR 是一个活跃的 Oracle 驱动,基于官方的 ODPI-C (Oracle Call Interface (OCI) wrapper) 接口。

需安装依赖:

1
go get github.com/godror/godror@latest

在实际生产环境中,你或许会使用 ORM 库来简化数据库操作,而不是直接使用 database/sql 包。

常见的 Go 语言连接 Oracle 数据库的 ORM 框架有:

  1. XORM

XORM 是简单而强大的开源 ORM 框架,支持 godror 和 go-oci8 这两种 Oracle 驱动。

安装依赖:

1
go get xorm.io/xorm
  1. GORM

支持 Oracle 12c 及以上版本。但已经三年未更新,不建议用于生产环境。

安装依赖:

1
go get github.com/cengsin/oracle

不过,对于理解底层工作原理和进行特定测试、优化,直接使用数据库驱动 和 database/sql 包是有价值的。

– END. –

logo.jpg

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

  • Title: 使用 Go-Ora 连接到 Oracle 23ai 数据库
  • Author: ShawnYan
  • Created at: 2024-04-08 23:00:00
  • Updated at: 2024-04-08 23:00:00
  • Link: https://shawnyan.cn/2024/oracle/oracle-23ai-go-ora-demo/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments