go基于ODPI-C 的oracle golang 驱动使用

go基于ODPI-C 的oracle golang 驱动使用,第1张

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格式然后打印出来

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/994915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存