Golang连接Oracle 需要安装Oracle Full Client或Instant Client 驱动程序
方式一
使用go get github.com/mattn/go-oci8
在GoPath的src目录下创建oracleoci8.go,内容如下:
package main
import(
"database/sql"
"fmt"
_ "github.com/mattn/go-oci8"
"log"
"os"
)
func main(){
if len(os.Args)!=2{
log.Fatalln(os.Args[0]+" user/password@host:port/sid")
}
fmt.Println(os.Args[1])
db, err := sql.Open("oci8", os.Args[1])
if err !=nil{
log.Fatalln(err)
}
defer db.Close()
//查询用户
rows, err := db.Query("select user from dual")
if err !=nil{
log.Fatalln(err)
}
defer rows.Close()
for rows.Next(){
var data string
rows.Scan(&data)
fmt.Println(data)
}
if err = rows.Err(); err !=nil{
log.Fatalln(err)
}
//查询ZHUJI表的code字段
rows2, err := db.Query("SELECT code FROM ZHUJI")
if err !=nil{
log.Fatalln(err)
}
defer rows2.Close()
for rows2.Next(){
var data string
rows2.Scan(&data)
fmt.Println(data)
}
if err = rows2.Err(); err !=nil{
log.Fatalln(err)
}
}
运行
#直接运行
go run oracleoci8.go liang/liang@192.168.0.4:1521/orcl
#或者先编译成二进制,在运行二进制文件
go build oracleoci8.go
./oracleoci8 liang/liang@192.168.0.4:1521/orcl
方式二
使用go get github.com/godror/godror
在GoPath的src目录下创建oracledror.go,内容如下:
package main
import(
"database/sql"
"encoding/json"
"fmt"
_ "github.com/godror/godror"
)
func main(){
db, err := sql.Open("godror",`user="liang" password="liang" connectString="192.168.0.4:1521/orcl"`)
if err !=nil{
panic(err)
}
err = db.Ping()
if err !=nil{
panic(err)
}
//查询ZHUJI表中code='pt'的sql:SELECT * FROM ZHUJI where CODE = 'pt'
sqlStatement :="SELECT * FROM ZHUJI where CODE = :1"
stmt, err := db.Prepare(sqlStatement)
defer stmt.Close()
if err !=nil{
panic(err)
}
rows, err := stmt.Query("pt")//输入sql中对应参数的值
if err !=nil{
panic(err)
}
defer rows.Close()//defer关闭查询连接
//获取列相关信息
strings, _ := rows.Columns()
for i :=0; i < len(strings); i++{
fmt.Print(" ", strings[i])
}
fmt.Print("\n")
//构造切片存储json
var slice []map[string]interface{}
var m1 map[string]interface{}
m1 = make(map[string]interface{})
var CODE, OVALUE1, OVALUE2 string
for rows.Next(){
rows.Scan(&CODE,&OVALUE1,&OVALUE2)//写入查询数据集的所有列名称
fmt.Printf("code is %s, OVALUE1 is %s\n", CODE, OVALUE1)
m1["CODE"]= CODE
m1["OVALUE1"]= OVALUE1
m1["OVALUE2"]= OVALUE2
slice = append(slice, m1)//分片中追加信息
}
if err = rows.Err(); err !=nil{
// handle the error here
}
defer stmt.Close()
data, err := json.Marshal(slice)
if err !=nil{
fmt.Printf("序列化错误 err = %v\n", err)
}
//输出序列化后的结果 json字符串
fmt.Printf("序列化后 = %v\n",string(data))
}
运行
#直接运行
go run oracledror.go
#或者先编译成二进制,在运行二进制文件
go build oracledror.go
./oracledror
<audio controls="controls" style="display: none;"></audio>
相关推荐
自用的Go语音连接MySQL数据库的代码,修改一下数据库地址就可直接用
BundleDB是Golang的嵌入式数据库,其集合随着它们的增长而自动分裂
go-oci8描述符合Go数据库/ sql界面的Golang Oracle数据库驱动程序安装安装Oracle完整客户端或Instant Client:https://www.oracle.com/technetwork/database/data go-oci8描述Golang符合以下条件的Oracle数据库驱动...
Golang Oracle数据库驱动程序TL; DR; 只需使用它import(“ database / sql” _“ gopkg.in/rana/ora.v4”)func main(){ora-import“ gopkg.in/rana/ora.v4”包ora实现了Oracle数据库驱动程序。 Golang Oracle...
我们用Navacat连接Oracle数据库的时候,会提示ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK
migrate - 在Golang中的数据库迁移处理,支持MySQL,PostgreSQL,Cassandra 和 SQLite
基于golang和postgresql数据库的家族管理系统源码.zip
底层报错 error:cannot assign requested address 原因 并发场景下 client 频繁请求...以上这篇gorm golang 并发连接数据库报错的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支
Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: •sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和关闭操作. •sql.DB 为我们...
使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库...
firebirdsql, firebird RDBMS sql驱动程序( golang ) firebirdsql ( 转到 firebird sql驱动程序)firebird RDBMS http://firebirdsql.org SQL驱动程序 要求firebird 2.1或者更高版本Golang 1.7或者
golang 使用go-ora 连接数据库 示例代码。 不用安装 cgo,不用安装mingw,也不用oracle客户端
Prana是一个Golang数据库管理和代码生成。 它有一个命令行界面提供:SQL迁移、嵌入式SQL脚本、从SQL模式生成模型
Usage of D:\code\go\bin\modelgenerate.exe: -database string database name (default "test") -dir string save dir (default "models") -host string mysql host (default "localhost") ...
主要介绍了golang实现mysql数据库备份的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
针对Golang的数据库操作,以及JSON输出,包括连接池、
点击屋\nYandex ClickHouse的另一个 Golang SQL 数据库驱动程序\n主要特征\n使用官方接口\n与数据库sql的兼容性\n与dbr、chproxy、clickhouse-bulk 的兼容性\n对于本机界面,请查看clickhouse-go\n数字网络\...
“ Go SQL DB”是一个关系数据库,支持出于研究目的SQL查询。 主要目标是向数据库爱好者展示关系数据库的基本原理和关键设计。 Go SQL DB中文“ Go SQL DB”是一个关系数据库,支持出于研究目的SQL查询。 主要目标是...
本文实例讲述了go语言通过odbc操作Access数据库的方法。分享给大家供大家参考。具体如下: 这里需要用到go-odbc库,下载地址为:https://github.com/weigj/go-odbc 代码如下:package main; import ( “fmt” ...