我正在使用Fedora 23,安装了Oracle 12.1
和Go 1.7.1
。
当我运行以下命令时:
go get github.com/mattn/go-oci8
我遇到了一个错误:
/usr/bin/ld: 在搜索 -lclntsh 时跳过不兼容的 /usr/lib/oracle/12.1/client64/lib/libclntsh.so
/usr/bin/ld: 无法找到 -lclntsh
collect2: 错误:ld 的执行返回码为 1
prefix=/home/sbr/wk/apps/oracle/product/11.2.0/client_1
exec_prefix=${prefix}
libdir=${prefix}
includedir=${prefix}/sdk/include
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: oci8
Description: oci8 library
Libs: -L${libdir} -lclntsh
Cflags: -I${includedir}
Version: 11.2
1、安装 goracle。
2、安装 TMD GCC。
3、使用 sql.open 连接到 Oracle 数据库,以下是一个小例子。
package main
import (
"fmt"
"database/sql"
_ "gopkg.in/goracle.v2"
)
func main(){
db, err := sql.Open("goracle", "scott/tiger@10.0.1.127:1521/orclpdb1")
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
rows,err := db.Query("select sysdate from dual")
if err != nil {
fmt.Println("Error running query")
fmt.Println(err)
return
}
defer rows.Close()
var thedate string
for rows.Next() {
rows.Scan(&thedate)
}
fmt.Printf("The date is: %s\n", thedate)
}
来自Oracle博客