go连oracle


还可以参考     https://github.com/wendal/go-oci8

一、下载oci

 ORACLE调用接口(Oracle Call Interface简称OCI)

https://www.oracle.com/database/technologies/instant-client/downloads.html

Oracle Instant Client(即时客户端)比 Oracle DataBase Cilent更加轻量级

 

下载 basic和sdk

特别慢

 

 

压缩后 把sdk放到base包下

 

 

 

添加环境变量
D:\Program Files\instantclient_19_6

二、下载MinGW

编译器 

1.离线下载

 https://sourceforge.net/projects/mingw-w64/files/

 

2.配置环境变量

 path D:\mingw-w64\mingw64\bin

 

三、下载go-oci8

 Oracle 数据库的 Go 语言驱动包

1.go get github.com/wendal/go-oci8 会报错  ///

 

 

 注意:最后把wendal换成了mattn不知道为什么wendal没成功

 

 2.进入路径 F:\gopro\src\github.com\wendal\go-oci8\windows

 找到oci8.pc 修改为 (路径不能有空格,斜杠是反的)

 

 

3.复制此目录下pkg-config.exe到mingw64下的bin目录

 

4.复制此目录下oci8.pc到mingw64下的lib/pkg-config目录(pkg-config目录需要自己建)

 

5.

 

四、测试

import (
    "database/sql"
    "fmt"

    _ "github.com/mattn/go-oci8"
)

func main() {
    // 设置连接数据库的参数
    db, _ := sql.Open("oci8", "xx:xx@ip/orcl")
    //获取所有数据
    rows, _ := db.Query("select CODE,NAME from xx")

    var CODE, NAME string
    //循环显示所有的数据
    for rows.Next() {
        rows.Scan(&CODE, &NAME)
        fmt.Println(CODE, "--", NAME)
    }

    //关闭数据库
    defer db.Close()
    //连接数据库
    err := db.Ping()
    if err != nil {
        fmt.Println("数据库连接失败")
        return
    }
    fmt.Println("hello")
}

 

如果说明oci8.pc没找到 D:\Program Files\instantclient_19_6的oic

 

 查看路径

pkg-config --cflags --libs oci8

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM