LoginSignup
0

posted at

updated at

Organization

[OCI]Autonomous Database:Goで書かれたアプリケーションからAutonomous Databaseに接続してみた時のメモ

はじめに

OSがOracle Linux 7.9のComputeインスタンスに、Go言語とOracle Instant Client、Go DRiver for ORacle(godror)をインストールしてAutonomous Databaseに接続してみた時のメモです。

1. GoとOracle Instant Clientのインストール

sudo yum install -y oracle-instantclient-release-el7 oracle-golang-release-el7
sudo yum install -y git gcc golang
sudo yum install -y oracle-instantclient-sqlplus

2. godrorのインストール

go mod init github.com/godror
go get github.com/godror/godror@latest

3. tnsnames.oraの作成

mkdir /home/opc/tns
vi /home/opc/tns/tnsnames.ora
tnsnames.ora
adb = コンソールの「DB接続」から取得した接続文字列

4. アプリケーションの作成

vi db.go
db.go
package main

import (
    "os"
    "fmt"
    "database/sql"
    _ "github.com/godror/godror"
)

func main(){

    os.Setenv("TNS_ADMIN", "/home/opc/tns")
    db, err := sql.Open("godror", "username/password@adb")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer db.Close()

    rows,err := db.Query("SELECT TO_CHAR(sysdate,'YYYY/MM/DD HH24:MI:SS') 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)
}

5. アプリケーションの実行

[opc@gotest ~]$ go run db.go
The date is: 2022/11/22 14:20:45
[opc@gotest ~]$

参考情報

Oracle Instant Client
Go DRiver for ORacle

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0