LoginSignup
1
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-11-15

はじめに

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

1
0
0

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
  3. You can use dark theme
What you can do with signing up
1
0