47 筆記go go連線Oracle

2021-08-09 01:27:28 字數 1981 閱讀 3378

47.筆記go——go連線oracle

在連線oracle資料庫之前我們先來看下乙個概念oci。

oracle呼叫介面(oracle call inte***ce簡稱oci)提供了一組可對oracle資料庫進行訪問的界面子例程(函式),通過在第三代程式語言(如c語言)中進行呼叫可達到訪問oracle資料庫的目的。

放到開發路徑下,資料夾go-oci8-master

將go-oci8-master\windows (絕對路徑,此處使用相對路徑為例)加入到path 環境變數。

設定環境變數pkg_config_path

為go-oci8-master\windows(絕對路徑,此處使用相對路徑為例)

最新的版本是12.1.0.1.0

安裝到:c:/instantclient_12_1

修改oci8.pc檔案中如下:

prefix=c:/instantclient_12_1

exec_prefix=c:/instantclient_12_1

libdir=$

includedir=$/sdk/include/

name: oci

description: oracle database engine

version: 12.1

libs: -l$ -loci

libs.private:

cflags: -i$

如果報錯:

# go-oci8-master

go-oci8-master\oci8.go:116: cannot convert(**c.struct_ociserver)(unsafe.pointer(&conn.svc)) (type**c.struct_ociserver) to type **c.struct_ocisvcctx

exit status 2

則需要修改\go-oci8-master\oci8.go檔案

有4個地方需要修改

1、119行

2、136行

3、263行

4、383行

或者直接替換ociserver為ocisvcctx。

package main

import (

"database/sql"

_"go-oci8-master"

"log"

"os" )

func main()

rows,err := db.query("select 3.14, 'foo' from dual")

iferr != nil

deferdb.close()

forrows.next()

rows.close()

// 先刪表

,再建表

db.exec("droptable sdata")

db.exec("createtable sdata(name varchar2(256))")

db.exec("insertinto sdata values('

中文')")

db.exec("insertinto sdata values('1234567890abcabc!@#$%^&*()_+')")

rows,err = db.query("select * from sdata")

iferr != nil

forrows.next()

rows.close() }

2016/07/1011:09:51 hello.go:14: oracle driver example

2016/07/1011:09:51 hello.go:33: 3.14 foo

2016/07/1011:09:52 hello.go:52: name = 中文, len=6

2016/07/1011:09:52 hello.go:52: name = 1234567890abcabc!@#$%^&*()_+, len=28

完畢。

教父3 筆記

教父3是一部很矯情的 原因在於教父3就是一部斬草不除根,然後還亮將禍患留在自己身邊,首領貼心照顧偏愛這個禍害,禍害長大了開始秘密禍害這個家族,然後首領還是不忍心處理掉這個禍害,忠心耿耿的手下被殺才布局讓手下去除掉禍害!大部分時間講述好萊塢的各種齷齪和骯髒,我猜想國內大部分是看電影過來的,如果以閱讀 ...

3 21 筆記 心得

課堂筆記 1函式內,區域性作用域 函式外,全域性作用域 2.this,指向誰,具體看誰呼叫這個函式 3.localstorage.setitem key,value 用於將key value鍵值對的方式插入localstorage中。4.localstorage.getitem key 讀取key的...

科目三筆記

1 起步 1左燈,喇叭3秒 2鬆手剎 3腳踩離合器和腳剎,掛一檔 先手剎,後檔位 4起步 問題 在轉彎時,加油掛2擋以及 3擋 還是轉彎過後直行,加油掛擋呢?2 左轉 右 速度在20碼上 3 加減檔 3 2 3 4 3 問題 1掛4檔後,加油到 38碼?2什麼時候從4擋掛到 3擋,檔位切換要等多久?...