QuânSysAd's Blog: oracle database
Hiển thị các bài đăng có nhãn oracle database. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn oracle database. Hiển thị tất cả bài đăng

27 tháng 7 2019

Kết nối Golang vào Oracle Database

Tôi sẽ giới thiệu cho các bạn cách cài ngôn ngữ Go và Oracle Instan Client từ Oracle Linux yum server và sử dụng nó cùng với goracle Driver để kết nối Go program tới Oracle Database.
Môi trường : CentOS 7

1. Cài đặt Repository

$ sudo yum install -y oracle-golang-release-el7 oracle-release-el7

2. Cài đặt Go và kiểm tra

$ sudo yum -y install git gcc golang
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/opc/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/opc/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/lib/golang"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build280983252=/tmp/go-build -gno-record-gcc-switches"
$ go version
go version go1.12 linux/amd64
Cài đặt Oracle Instant Client
sudo yum -y install oracle-instantclient18.3-basic
Thêm thư viện vào Runtime Link Path.
sudo sh -c "echo /usr/lib/oracle/18.3/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig

4. Cài đặt goracle Driver.

$ go get gopkg.in/goracle.v2

5. Tạo một chương trình bằng Go để test kết nối.

Tạo một file db.go như sau. Lưu ý thay đổi connect string.
package main

import (
    "fmt"
    "database/sql"
    goracle "gopkg.in/goracle.v2"
)

func main(){

    db, err := sql.Open("goracle", goracle.ConnectionParams{Username:"username", Password:"password", SID:"hostname:port/servicename"}.StringWithPassword())
    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)
}

6. Chạy thử

$ go run db.go
The date is: 2019-03-21T17:58:49Z
Nếu ra được kết quả là ngày tháng là bạn đã thành công.

Nguồn

https://blogs.oracle.com/developers/how-to-connect-a-go-program-to-oracle-database-using-goracle

30 tháng 8 2017

Các gói cần cài đặt trước khi cài oracle database

Sau đây là các gói cần cài đặt, tôi lấy từ trong gói cài tự động của Oracle dành cho bản 12CR1.
bind-utils binutils compat-libcap1 compat-libstdc++-33 ethtool gcc gcc-c++ glibc glibc-devel initscripts ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make module-init-tools nfs-utils openssh-clients pam procps psmisc smartmontools sysstat unzip util-linux-ng xorg-x11-utils xorg-x11-xauth