Golang连接Oracle数据库 MacOS平台

2,976 阅读1分钟

引用说明:

  • godror数据驱动:github.com/godror/godr… golang程序里用来连接数据库的入口
  • ODPI-C:www.oracle.com/database/te… Oracle 数据库的 C 语言编程接口 (ODPI-C) 是一个全新的 C 代码开源库,它简化了 Oracle 数据库驱动程序和用户应用对常用 OCI 功能的使用。ODPI-C 是位于 OCI 之上的一个精简层,需要 Oracle 客户端库

一、安装数据库相关依赖

1. 下载ODPI—C (19.3 or 18.1是可以连接11.2 or later)

instantclient-basic-maco.x64-19.3.0.0.0dbru.zip

Basic Package or Basic Light Package自己选择

2. 将程序包解压缩到应用程序可访问的单个目录中。

sudo mkdir -p /opt/oracle
sudo unzip instantclient-basic-macos.x64-11.2.0.4.0.zip

3、添加链接$HOME/lib或/usr/local/lib使应用程序能够找到库。

mkdir ~/lib
ln -s /opt/oracle/instantclient_19_3/libclntsh.dylib.12.1 ~/lib/
或者,复制所需的OCI库。
mkdir ~/lib
cp /opt/oracle/instantclient_19_3/{libclntsh.dylib.12.1,libclntshcore.dylib.12.1,libons.dylib,libnnz12.dylib,libociei.dylib} ~/lib/
对于Instant Client 11.2,必须复制OCI库。
mkdir ~/lib
cp /opt/oracle/instantclient_19_3/{libclntsh.dylib.12.1,libnnz12.dylib,libociei.dylib} ~/lib/

4、如果您打算同定位可选的Oracle配置文件,如tnsnames.ora,sqlnet.ora或oraaccess.xml与即时客户端,然后创建一个network/admin子目录。

mkdir -p /opt/oracle/instantclient_19_3/network/admin
tnsnames.ora 文件格式如下:
TOPPROD这个是服务名,可以自己取名,SERVICE_NAME = topprod 这个对应数据库的服务名。

tnsnames.ora配置文件示例

二、Golang程序里引用

import( 
    	"fmt"
    	"github.com/gin-gonic/gin"
    	"net/http"
    	_ "github.com/godror/godror"
    	"database/sql"
)
func main(){
    db, err := sql.Open("godror","username/password@TOPPROD")
}

相关教程参考