mysql oracle sqlit_【Go语言】连接数据库SQLite、MySQL、Oracle
3.Go连接Oracle
3_1.Oracle推荐驱动以及准备事项
本人的数据库相关配置是 版本11.2.0.1.0
Go版本是1.2
系统是WIN7旗舰版64位
按照下面的步骤最终连接上了oracle
①首先是先在机子上安装git(这是必须的吧 作为go开发者)
②下载最新版的OCI尽管我用的是11.2的版本,但是试了n次才返现只有最新的12.1.0.1.0 才管用
下载地址是http://www.oracle.com/technetwork/cn/database/winx64soft-089540.html
如果这个地址不好使,可以再baidu是搜Instant Client Downloads for Microsoft Windows (x64)
需要下载instantclient-basic和instantclient-sdk两个zip文件
下载后将两个包解压,然后将sdk中的文件sdk文件夹放到instantclient_12_1下,形成instantclient_12_1/sdk目录级
然后将instantclient_12_1文件夹改名为instantclient_11_2并放到了C盘的跟目录下
③下载MinGW最新版(实际上我用的不是最新的 用的是这个版本x86_64-4.9.0-posix-seh-rt_v3-rev2)
④到https://github.com/wendal/go-oci8下载pkg-config.exe和oci8.pc
注意先不要把这些源码git到计算机上,只是先下载pkg-config.exe和oci8.pc(在windows目录下)
下载后进行以下操作
将pkg-config.exe复制到mingw\bin\下
将oci8.pc复制到mingw\lib\pkg-config\下(我的pkg-config是新建的因为原来没有)
注意,oci8.pc 需要根据你下载的 oci进行修改。下面是我根据我下载的oci版本做的修改。
# Package Information for pkg-config
prefix=C:/instantclient_11_2
exec_prefix=C:/instantclient_11_2
libdir=${exec_prefix}
includedir=${prefix}/sdk/include/
Name: OCI
Description: Oracle database engine
Version: 11.2
Libs: -L${libdir} -loci
Libs.private:
Cflags: -I${includedir}
⑤修改系统环境变量,
添加
PATH=原有PATH;C:\instantclient_11_2;D:\MinGW\bin; (读者根据自己的目录变换一下)
PKG_CONFIG_PATH=D:\MinGW\lib\pkg-config(读者根据自己的目录变换一下)
⑥下载源码.
把https://github.com/wendal/go-oci8源码git到本地(这是go-oci库 也就是连接oracle的驱动)
go get github.com/wendal/go-oci8
然后执行测试一下吧
3_2.Oracle连接示例代码
示例代码如下:
packagemainimport("database/sql"
"fmt"_"github.com/wendal/go-oci8"
"log")
type Users struct {
UserIdintUname string
}
func main() {
log.Println("Oracle Driver Connecting....")//用户名/密码@实例名 如system/123456@orcl、sys/123456@orcl
db, err := sql.Open("oci8", "BOOKMAN/password@orcl")if err !=nil {
log.Fatal(err)
panic("数据库连接失败")
}else{
defer db.Close()
var users []Users= make([]Users, 0)
rows, err := db.Query("select * from users")if err !=nil {
log.Fatal(err)
}else{forrows.Next() {
var u Users
rows.Scan(&u.UserId, &u.Uname)
users=append(users, u)
}
fmt.Println(users)
defer rows.Close()
}
}
}
执行过程比mysql和sqlite比起来非常缓慢,结果如下
2014/07/08 01:14:05Oracle Driver Connecting....
[{1 Mike} {2 john}]
mysql oracle sqlit_【Go语言】连接数据库SQLite、MySQL、Oracle相关推荐
- 【MySQL】使用C语言连接数据库
文章目录 下载Mysql的C接口库 程序中引入Mysql头文件和库文件 **Mysql接口介绍** 创建句柄 链接数据库 设置字符编码 执行SQL语句 关闭链接 mysql.ops.cc 下载Mysq ...
- c语言如何编写mysql客户端_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...
#include #include #include #include #include #include #include #include "mydb.h" void sqld ...
- mysql数据库编程(c 语言)_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...
#include #include #include #include #include #include #include #include "mydb.h" void sqld ...
- oracle的脚本语言是什么意思,Oracle中的sql脚本语言中的循环语句介绍
--sql脚本语言的循环介绍: --1.goto循环点. declare x number; begin x:=0;--变量初始化: <>--设置循环点. x:=x+1; dbms_out ...
- 易语言外部数据库MySQL支持库Access数据库Sqlite数据应用
语言虽然有自己的数据库, 但易数据库只是以简单的.类似表格的形式组织数据信息,是一个小型数据库管理系统.有时编程中必须使用其它数据库.易语言支持以ODBC方式和ADO方式操作外部数据库. 一.ODBC ...
- 连接mysql语言_杂谈各个语言连接数据库如何实现的-第一讲
我们都知道各个语言连接数据库都有封装好的API.比如操作MySQL,php有pdo,mysqli等,java有jdbc,c#有mysql-connector-net,nodejs也有mysql的驱动. ...
- db2 mysql sql server_连接数据库的方法(Oracle DB2 SQL Server MySQL...)
[java]代码库import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /* ...
- 【MySQL】C语言连接数据库
在使用数据库的时候,我们是操作客户端方的,向服务器请求数据.MySQL的端口号-3306 连接mysql需要头文件:#include<mysql/mysql.h> 基础连接步骤: 1.创建 ...
- cyq.data mysql_CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]...
前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.0 版本发布,又过去一个来月了,不过也过了一个新年了. 由于过年原因,因此框架也没多折腾什么,只是年前年后顺路把sqlite,MysqL两种 ...
- Oracle大佬离职,怒喷MySQL是“糟糕的数据库”……
欢迎关注方志朋的博客,回复"666"获面试宝典 在这位工程师看来,PostgreSQL 才是开源 RDBMS 的更好选择. 数据库工程师在离职的时候会干些什么?拿张贺卡.收起纪念礼 ...
最新文章
- 复旦大学邱锡鹏教授团队:Transformer最新综述
- 腾讯分布式数据库DCCB
- Java数组概述和定义
- MVC常见的控制器,接口,数据层之间的操作
- win10安装ensp启动40_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10
- 快速排序的两种实现方法(js)
- AcWing 868. 筛质数(欧拉筛模板)
- Spring boot中使用Jackson ObjectMapper注入
- Atitit 下推自动机﹙PDA﹚说明书 目录 1. 概念组成与原理成分	1 2. 性状	1 3. 适用场景 主治 适应症	1 3.1. 所有场景()。	1 3.2. 语法解析 构建ast	2 3.
- linkedin android,如何在android中登录linkedin?
- 重写JS保留小数-去尾法
- QQ免费企业邮箱申请配置
- 20余年互联网沉浮史:剩者为王
- gulp在工作中的应用
- ybt1109 开关灯
- 【C语言】||(或) (且)
- 标号法(label-setting algorithm)求解带时间窗的最短路问题(ESPPRC)
- UE4 自定义按键事件(踩坑记录)
- pytorch版本RetinaFace人脸检测模型推理加速
- 连接nacos服务器报错,显示/nacos/v1/ns/instance after all servers([localhost:8848])
热门文章
- numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)
- pandas使用drop函数删除dataframe中指定索引列表对应位置的数据行(drop multiple rows in dataframe with integer index)
- pandas为dataframe所有的列名称名添加前缀(add_prefix)
- R安德森-达令检验( Anderson-Darling Test)
- 影像组学视频学习笔记(37)-机器学习模型判断脑卒中发病时间(文献报告)、Li‘s have a solution and plan.
- 物体检测之从RCNN到Faster RCNN
- The Pediatric Cancer Genome Project 儿童癌症基因组计划
- Python基础语法学习笔记
- windows系统服务器数据库,windows系统的服务器肿么访问数据库
- server sql 分组 去重 字符串拼接_SQL | 数据分析面试必备SQL语句+语法