golang通过go-aci适配神通数据库
1. go-aci简介
go-aci是神通数据库基于ACI(兼容Oracle的OCI)开发的go语言开发接口,因此运行时需要依赖ACI驱动和ACI库的头文件。支持各种数据类型的读写、支持参数绑定、支持游标范围等操作。
2. Linux部署步骤
2.1. Go安装:
版本:1.9以上
Go安装目录:/usr/lib/go
2.2. 编译环境:
版本:gcc和g++ 4.8以上
2.3. go-aci文件拷贝
将神通go-aci驱动拷贝到go的src目录,比如:/usr/lib/go/src,如下:

2.4. go-aci文件配置
-
更新aci的头文件和aci库文件:
头文件:go-aci自带aci头文件,默认情况下不用更新,aci头文件可从数据库安装目录: S Z O S C A R H O M E / a c i / i n c l u d e 获取。 A c i 库文件: a c i 库文件在 g o − a c i 目录中,需要根据部署平台从数据库中的安装目录中拷贝 SZ_OSCAR_HOME/aci/include获取。 Aci库文件:aci库文件在go-aci目录中,需要根据部署平台从数据库中的安装目录中拷贝 SZOSCARHOME/aci/include获取。Aci库文件:aci库文件在go−aci目录中,需要根据部署平台从数据库中的安装目录中拷贝SZ_OSCAR_HOME/aci/,比如在arm平台下,
$SZ_OSCAR_HOME/aci/arm64/libaci.so文件拷贝到/usr/lib/go/src/go-aci目录下。 -
修改aci.pc文件:
aci.pc文件中记录的是编译go-aci依赖头文件和aci库文件的路径,将其修改为对应目录,比如:

2.5. go-aci编译
设置环境变量:PKG_CONFIG_PATH,export PKG_CONFIG_PATH=$go-aci , $go-aci为go-aci代码的路径,比如export PKG_CONFIG_PATH=/usr/lib/go/src/go-aci
终端中cd /usr/lib/go/src/,执行go build go-aci,确保编译无错,如图:

2.6. go-aci测试
到/usr/lib/go/src/go-aci/test目录下,编译test.go : go build -o test_goaci test.go,如图

执行test_goaci:./test_goaci sysdba/szoscar55@localhost:2003/osrdb

备注:链接数据库的用户名、密码、ip和端口、实例名称都是可以更改的,执行前在数据库中建表:create table test( a int ,b text);
3) 注意事项:
因为go-aci依赖的是神通aci库,因此在go调用go-aci程序时,需要确认aci库所在的路径是否系统运行时找到,如果没有可以将aci库与运行程序放在同一目录即可。
3. Win部署步骤
3.1. mingw-w64安装
mingw能提供在windows环境下的gcc和g++编译换环境,安装方式如下:
下载mingw-w64-install.exe,可在线安装,下载链接:
https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe
运行:mingw-w64-install.exe,选择x86_64,直接下一步

选择安装路径:比如c:\mingw-w64

等待安装:

安装完成:

将c:\mingw-w64\mingw64\bin目录添加到系统path环境变量中:

备注:对于离线环境,可以将安装好mingw-w64的整个文件拷贝到无网环境,通用需要配置path路径即可。
安装是否成功验证,开启新的cmd窗口,执行gcc ,提示如下即可:

3.2. Go SDK安装
Go sdk要求1.9以上,下载链接:https://dl.google.com/go/go1.14.1.windows-amd64.msi
然后进行安装



将c:\Go\bin\bin目录添加到系统path环境变量中:

验证是否安装成功,开启新cmd终端,执行go,如图:

3.3. pkg-config依赖安装
下载pkg-config,地址http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/pkg-config_0.23-2_win64.zip
将下载的pkg-config放置到c:\go\bin目录下。
pkg-config会依赖libglib-2.0-0.dll库,需要下载glib,链接如下,将libglib-2.0-0.dll与pkg-config.exe都放置在c:\go\bin目录下。
http://ftp.acc.umu.se/pub/gnome/binaries/win64/glib/2.18/glib_2.18.4-1_win64.zip
3.4. go-aci配置
将go-aci源码拷贝到go目录下,比如C:\Go\src目录下:

修改go-aci目录下的aci.pc文件如下,路径需要和安装路径一致:

开启一个cmd,然后进入到C:\Go\src\go-aci目录下,依次执行,没有报错即为正确
set PKG_CONFIG_PATH=%cd%
go build go-aci
如图:

3.5. test程序
cmd中进入到C:\Go\src\go-aci\test目录,执行
go build test.go

备注:需要在数据库中创建test表:create table test( a int ,b text);
相关文章:
golang通过go-aci适配神通数据库
1. go-aci简介 go-aci是神通数据库基于ACI(兼容Oracle的OCI)开发的go语言开发接口,因此运行时需要依赖ACI驱动和ACI库的头文件。支持各种数据类型的读写、支持参数绑定、支持游标范围等操作。 2. Linux部署步骤 2.1. Go安装: 版本:1.9以上…...
【Vue】Vue2中的Vuex
目录 Vuex介绍Vuex 中的核心概念 在vue2中使用Vuex安装 Vuex创建一个 Vuex Store在 Vue 实例中使用 Vuex编写 Vuex 的 state、mutations 和 actions在组件中使用 Vuex Vuex的核心State组件中获取 Vuex 的状态mapState 辅助函数对象展开运算符 Getter基本使用示例 通过属性访问通…...
前端生成二维码
直接img标签显示 npm i use_qrcode npm包地址 <img :src"qrcode" alt"QR Code" /> const txt: any ref(https://baidu.com) const qrcode useQRCode(txt) const qrcodeLogo useQRCode(txt, { logoSrc: https://www.antdv.com/assets/logo.1ef800…...
wordpress woocommer 添加代码实现,点击按钮,将产品添加到购物车并且跳转到结账页面
wordpress woocommer 添加代码实现,点击按钮,将产品添加到购物车并且跳转到结账页面 案列代码1,解决的是普通产品的 //短代码生成按钮,传入短代码,点击直接到达结账页面 function add_product_to_cart_button($atts)…...
Scala学习笔记6: 类
目录 第六章 类1- 简单类和无参方法2- 带有getter和setter的属性3- 只带getter的属性4- 对象私有化5- 辅助构造器6- 主构造器7- 嵌套类end 第六章 类 在Scala中, 类用于创建对象的蓝图; 类可以包含方法、值、变量、类型、对象和特质等成员; 类名应该以大写字母开头, 可以包含…...
JS数组根据对象的某一个字段排序
const person [{ name: aa, age: 9 },{ name: bb, age: 17 },{ name: cc, age: 6 },{ name: dd, age: 18 }];// 升序const arr1 person.sort((a, b) > {return a.age - b.age;b})console.log(arr1)// 降序const arr2 person.sort((a, b) > {return b.age - a.age;})co…...
JavaScript操作
做UI自动化的时候,有些操作无法直接通过selenium自带方法操 作成功,那么就需要借助前端js操作实现。 比如浏览器的滚动条这种不是html页面的内容,无法直接通过selenium 控制到。需要借助JavaScript控制。比如有些点击操作无法通过普通点击鼠…...
雪花算法 代码
/*** author lwh* date 2023/9/5* description 批量插入,手动设置**/ public class IdWorker {//因为二进制里第一个 bit 为如果是 1,那么都是负数,但是我们生成的 id 都是正数,所以第一个 bit 统一都是 0。//机器ID 2进制5位 3…...
我把PostgreSQL最核心的插件撸干净了!!!
作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…...
Transformer详解(1)-结构解读
Transormer块主要由四个部分组成,注意力层、位置感知前馈神经网络、残差连接和层归一化。 1、注意力层(Multi-Head Attention) 使用多头注意力机制整合上下文语义,它使得序列中任意两个单词之间的依赖关系可以直接被建模而不基于传统的循环结构&#…...
使用Flask Swagger自动生成API文档
文章目录 安装Flask Swagger使用Flask Swagger生成API文档总结1. 自动化文档生成2. 交互式文档展示3. 规范化API设计4. 提升协作效率5. 支持多种格式 Flask Swagger是一种用于管理Flask API文档的工具。它基于OpenAPI规范,可以自动生成API的交互式文档。使用Flask S…...
操作系统408考研-经典例题
什么是操作系统?答:操作系统,是计算机系统中最基本、最重要的系统软件,是其它软件 的***支撑***。控制和管理计算机系统的硬件和软件资源,合理的组织计算机工 作流程,并为用户使用计算机提供公共和基本的服务 2.多道程序 (multiprogrammming) 和多重处理 (multiprocessi…...
工程项目管理系统源码与Spring Cloud:实现高效系统管理与二次开发
随着企业规模的不断扩大和业务的快速发展,传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…...
react中hook 函数的使用
以 use 开头的函数被称为 Hook。useState 是 React 提供的一个内置 Hook。你可以在 React API 参考 中找到其他内置的 Hook。你也可以通过组合现有的 Hook 来编写属于你自己的 Hook。 Hook 比普通函数更为严格。你只能在你的组件(或其他 Hook)的 顶层 调…...
探索k8s集群中kubectl的陈述式资源管理
一、k8s集群资源管理方式分类 1.1陈述式资源管理方式:增删查比较方便,但是改非常不方便 使用一条kubectl命令和参数选项来实现资源对象管理操作 即通过命令的方式来实 1.2声明式资源管理方式:yaml文件管理 使用yaml配置文件或者json配置文…...
webgl入门-绘制三角形
绘制三角形 前言 三角形是一个最简单、最稳定的面,webgl 中的三维模型都是由三角面组成的。咱们这一篇就说一下三角形的绘制方法。 课堂目标 理解多点绘图原理。可以绘制三角形,并将其组合成多边形。 知识点 缓冲区对象点、线、面图形 第一章 web…...
深入分析 Android Activity (三)
深入分析 Android Activity (三) 1. Activity 的配置变化处理 当设备配置(如屏幕方向、语言、屏幕大小等)发生变化时,默认情况下,Android 会销毁并重新创建当前的 Activity。这种行为确保了新配置能够正确应用,但在某…...
电影《朝云暮雨》观后感
上周看了电影《朝云暮雨》,看完之后,感觉自己整个人都不太好了,也不是说电影太差,只是觉得电影没有传达正能量,让人很不舒服。 (1)演技在线 对于著名的演员“范伟”,或者说&#x…...
Isaac Sim仿真平台学习(1)认识Isaac Sim
0.前言 上一个教程中我们下载好了Isaac Sim,这一章我们将来简单了解一下Isaac Sim平台。 isaac Sim仿真平台安装-CSDN博客 1.Isaac Sim是啥? What Is Isaac Sim? — Omniverse IsaacSim latest documentation Isaac Sim是NVDIA Omniverse平台的机器…...
C++:vector基础讲解
hello,各位小伙伴,本篇文章跟大家一起学习《C:vector基础讲解》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞!&#…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
