91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Go語言怎么連接Oracle數據庫

發布時間:2021-02-07 18:07:15 來源:億速云 閱讀:291 作者:Leah 欄目:開發技術

使用Go語言怎么連接Oracle數據庫?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先交代一下運行環境和工具版本:

WIN10

MINGW64

ORACLEINSTANCCLIENT_18_3 x64

Jetbrins Goland

編譯階段:
1. exec: "gcc": executable file not found in %PATH%

2. exec: "pkg-config": executable file not found in %PATH%

3. cannot use (**_Ctype_struct_OCIServer)(unsafe.Pointer(&conn.svc))

(type **_Ctype_struct_OCIServer) as type **_Ctype_struct_OCISvcCtx

in argument to func literal

運行階段:

1. Process finished with exit code -1073741701 (0xC000007B)

2. exit status 3221225595

開始

一、下載ORACLEINSTANCCLIENT 和對應的SDK

下載地址:https://www.oracle.com/technetwork/topics/winx64soft-089540.html

我選用了18.3 x64的版本,能向下兼容,不用擔心

注意basic版本和sdk都需要下載下來,一共是兩個文件

使用Go語言怎么連接Oracle數據庫

下載之后先解壓basic壓縮包,然后將sdk解壓到basic目錄下:

使用Go語言怎么連接Oracle數據庫

添加如下環境變量到系統PATH變量:(按自己的情況添加)

使用Go語言怎么連接Oracle數據庫

二、下載安裝MINGW64

主要是解決WIN中沒有GCC的問題

如果不安裝后期會出現問題:(exec: "gcc":executable file not foundin %PATH%)

因為之前下載的ORACLEINSTANCCLIENT是64位的所以我們也需要下載MINGW64才能編譯

下載地址:https://sourceforge.net/projects/mingw-w64/files/

注意,第一個是在線安裝程序,較慢,建議直接下載7z壓縮包。解壓即可

使用Go語言怎么連接Oracle數據庫

解壓之后,添加如下環境變量到PATH:(按自己的情況添加)

使用Go語言怎么連接Oracle數據庫

三、獲取GO-OCI8驅動

執行命令:go get github.com/wendal/go-oci8

會報一個錯誤:pkg-config: exec: "pkg-config": executable file not found in %PATH%

先忽略,后面會解決

四、修改OCI8.PC

進入GOPATH目錄,找到OCI8.PC文件,打開,修改 紅色框的部分(按你自己的情況)

%GoPath%\src\github.com\wendal\go-oci8\windows

使用Go語言怎么連接Oracle數據庫

然后:

1.復制此目錄下pkg-config.exe到mingw64下的bin目錄

2.復制此目錄下oci8.pc到mingw64下的lib/pkg-config目錄(pkg-config目錄需要自己建)

使用Go語言怎么連接Oracle數據庫

添加如下(PKG_CONFIG_PATH)環境變量:(按自己情況)

使用Go語言怎么連接Oracle數據庫

五、最后一步

執行命令:go get github.com/wendal/go-oci8

此時執行這個操作

應該已經沒有(pkg-config: exec: "pkg-config": executable file not found in %PATH%)這個錯誤了,如果還有,就是上一步你做的不太對。

但是,還會有新的錯誤出現,如下:

使用Go語言怎么連接Oracle數據庫

不要慌

打開GOPATH目錄下,oci8.go文件

路徑:%GoPath%\src\github.com\wendal\go-oci8

此文件中四處OCIServer為OCISvcCtx

使用Go語言怎么連接Oracle數據庫

再次!!!!

執行命令:go get github.com/wendal/go-oci8

可以了,完事兒。

讓我們上一段代碼,測試一下:

package main

import (
  "database/sql"
  "fmt"
  "log"
  "os"

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

func query() {
  os.Setenv("NLS_LANG", "AMERICAN_AMERICA.AL32UTF8")
  log.SetFlags(log.Lshortfile | log.LstdFlags)
  db, err := sql.Open("oci8", "j1_bibox/oracle123@10.1.196.200:1521/zjdevdb")
  if err != nil {
    log.Fatal(err)
  }
  defer db.Close()
  rows, err := db.Query("select * from v$version")
  if err != nil {
    log.Fatal(err)
  }
  cols, _ := rows.Columns()
  rawResult := make([][]byte, len(cols))
  result := make([]string, len(cols))
  dest := make([]interface{}, len(cols))
  for i := range rawResult {
    dest[i] = &rawResult[i]
  }
  for rows.Next() {
    err = rows.Scan(dest...)
    for i, raw := range rawResult {
      if raw == nil {
        result[i] = ""
      } else {
        result[i] = string(raw)
      }
    }
    fmt.Printf("%s\n", result[0])
  }
  rows.Close()
}

func main() {
  query()
}

走你

就是這么刺激,還是錯!!!!?????

現在不要慌,冷靜一點,分析情況

首先,如果你的代碼在IDE中運行,會報錯如下:

使用Go語言怎么連接Oracle數據庫

使用Go語言怎么連接Oracle數據庫

如果你不信這個邪,在cmd中運行,會報錯如下:

使用Go語言怎么連接Oracle數據庫

以管理員模式運行

使用Go語言怎么連接Oracle數據庫

IDE中也可以這樣解決問題:

使用Go語言怎么連接Oracle數據庫

看完上述內容,你們掌握使用Go語言怎么連接Oracle數據庫的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文安县| 永康市| 平南县| 双辽市| 青岛市| 绥滨县| 和田市| 曲阜市| 河源市| 高邑县| 韶山市| 隆化县| 灌云县| 屯昌县| 辉南县| 义乌市| 即墨市| 常州市| 肥东县| 上栗县| 修武县| 焦作市| 高密市| 庐江县| 和硕县| 措勤县| 恩平市| 阜阳市| 武强县| 白水县| 宁津县| 河津市| 聂荣县| 仙游县| 共和县| 嘉鱼县| 汽车| 无棣县| 台南市| 郁南县| 曲水县|