The newest recommended way to connect to an Oracle Database in Go is to use the official Oracle driver <https://github.com/oracle/go-oracledb/>. It's a pure Go driver and therefore platform independent.
```
db, err := sql.Open("oracledb", "myuser/mypassword@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=my_host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=my_service_name)))")
if err != nil {
return nil, err
}
rows, err := db.QueryContext(context.Background(), "SELECT 1 FROM DUAL")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
var val int
if rows.Next() {
if err := rows.Scan(&val); err != nil {
log.Fatal(err)
}
}
```
The newest recommended way to connect to an Oracle Database in Go is to use the official Oracle driver https://github.com/oracle/go-oracledb/.
```
db, err := sql.Open("oracledb", "myuser/mypassword@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=my_host)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=my_service_name)))")
if err != nil {
return nil, err
}
rows, err := db.QueryContext(context.Background(), "SELECT 1 FROM DUAL")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
var val int
if rows.Next() {
if err := rows.Scan(&val); err != nil {
log.Fatal(err)
}
}
```