import (
"crypto/cipher"
"crypto/des"
"crypto/md5"
"database/sql"
"encoding/hex"
"encoding/json"
"fmt"
"net/http"
_ "odbc/driver"
"strconv"
"bytes"
"flag"
"log"
)
var debug = flag.Bool("debug", true, "enable debugging")
var password = flag.String("password", "a*c23**", "the database password")
var port *int = flag.Int("port", 6003, "the database port")
var server = flag.String("server", "123.***.120.**", "the database server")
var user = flag.String("user", "sa", "the database user")
var database = flag.String("database", "Deer_JNCB_********", "the database name")
func GetDB() (*sql.DB, error){
if *debug {
fmt.Printf(" password:%s\n", *password)
fmt.Printf(" port:%d\n", *port)
fmt.Printf(" server:%s\n", *server)
fmt.Printf(" user:%s\n", *user)
}
connString := fmt.Sprintf("server=%sdatabase=%suser id=%spassword=%sport=%dencrypt=disable", *server, *database, *user, *password, *port)
if *debug {
fmt.Printf(" connString:%s\n", connString)
}
db, err := sql.Open("mssql", connString)
if err != nil {
log.Fatal("Open connection failed:", err.Error())
return nil, err
}
err = db.Ping()
if err != nil {
fmt.Print("PING:%s",err)
return nil, err
}
return db, nil
}
encrypt=disable 这个很重要,说三遍.....
//假设的GOPATH指向C:\gohome0. 执行 go get github.com/wendal/go-oci8 ,然后肯定是报错了,没关系,代码会下载下来.
1. 首先,你需要安装mingw到C:\mingw
2. 然后,到Oracle官网,下载OCI及其SDK,解压到instantclient_11_2 -- 当前最新版
3. 从我的go-oci8库的windows文件夹,拷贝pkg-config.exe到C:\mingw\bin\,拷贝oci8.pc到C:\mingw\lib\pkg-config\
4. 设置环境变量 PATH ,值为 原有PATHC:\instantclient_11_2C:\mingw\bin
5. 设置环境变量 PKG_CONFIG_PATH,值为 C:\mingw\lib\pkg-config
6. 接下来,就最重要的,就是再执行一次,这次应该能成功的: go get github.com/wendal/go-oci8
7. 测试一下:
cd %GOPATH%/src/github.com/wendal/go-oci8/example
go run oracle.go
#提醒一句, oracle.go里面的写的密码是system/123456, 实例名XE