はじめに
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 ~]$