package main
import (
"database/sql"
"fmt"
_ "github.com/godror/godror"
//_ "github.com/wendal/go-oci8"
)
//数据库配置
const (
host = "10.11.48.60"
port = 1521
user = "LabwayJy"
sqlpassword = "LabwayJy"
dbname = "orcl"
)
func main() {
// 用户名/密码@IP:端口/实例名
osqlInfo := fmt.Sprintf("%s/%s@%s:%d/%s", user, sqlpassword, host, port, dbname)
fmt.Println(osqlInfo)
db, err := sql.Open("godror", osqlInfo)
if err != nil {
panic(err)
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err)
}
// db.Prepare("")
// rows, err := db.Query("select distinct t.test_main_id from lis_test_main t , lis_oper_record t1 where t.test_main_outer_id=t1.oper_bus_id and t1.oper_org_id='2510' AND TO_CHAR(TWO_CHECK_DATE,'yyyy-mm-dd')='2021-12-14'")
rows, err := db.Query("select * from LIS_TEST_MAIN WHERE TEST_MAIN_ID='c4bf987585024765b17b7cbd6debb09f'")
columns, _ := rows.Columns()
columnLength := len(columns)
cache := make([]interface{}, columnLength) //临时存储每行数据
for index, _ := range cache { //为每一列初始化一个指针
var a interface{}
cache[index] = &a
}
var list []map[string]interface{} //返回的切片
for rows.Next() {
_ = rows.Scan(cache...)
item := make(map[string]interface{})
for i, data := range cache {
item[columns[i]] = *data.(*interface{}) //取实际类型
}
list = append(list, item)
}
_ = rows.Close()
fmt.Println(list)
// return list, nil
}
以上是若是在win环境下,需要安装gcc 环境
C:\mingw64
需要在系统变量里设置gcc参数
rows 数据库格式的,需要格式化成map格式然后打印出来