在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
地址:https://github.com/wendal/go-oci8 它是 https://github.com/mattn/go-oci8 的分支. win下安装步骤参考:http://www.cnblogs.com/ghj1976/p/3437250.html 下面的安装步骤主要参考了:https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com%3amattn%3ago-oci8.md
pkg-config这一工具是用来检索系统中安装库文件的信息。其主要功能如下:
--exists,可以用来测试模块的可用性。 http://www.cppblog.com/nenlong/archive/2012/09/04/189480.html
安装oci8:从 OTN Instant Client 页面下载 Basic 和 SDK Instant Client 程序包。 OCI是指ORACLE调用接口(Oracle Call Interface),它提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。 OCI是集成在 Oracle Database Instant Client 的Basic 版本中的。下载地址如下: 比如我这里下载的是: instantclient-sdk-linux.x64-12.1.0.1.0.zip 如果您使用 ZIP 文件,应该将 SDK 解压缩到 basic 程序包所在的目录中 解压缩参数参考:http://www.ezloo.com/2008/01/linux_zip_unzip.html 1),切换到root帐号 具体命令如下: 解压缩 basic文件 [root@localhost oci]# unzip instantclient-basic-linux.x64-12.1.0.1.0.zip -d /usr/local/ 解压缩 sdk 文件 unzip instantclient-sdk-linux.x64-12.1.0.1.0.zip -d /usr/local/
下一步,手动创建一个符号链接: ln -s libclntsh.so.12.1 libclntsh.so 参考: http://blog.chinaunix.net/uid-20769015-id-3919458.html
修改oci8.pc文件(/usr/lib/pkgconfig/ 目录下):
# Package Information for pkg-config prefix=/usr/local/instantclient_12_1/
Name: OCI
修改完后,注意需要设置全局参数: PKG_CONFIG_PATH , 否则会报下面错误: Package oci8 was not found in the pkg-config search path.
设置方法在 /etc/profile 文件中增加下面一条: export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
http://blog.csdn.net/joker_zhou/article/details/8907915
配置用户的Oracle客户端环境变量配置到该用户的根目录,编辑 .bash_profile 文件,设置环境变量. vi .bash_profile 在内容后面新增如下配置: export ora_home=/usr/local/instantclient_12_1
http://blog.csdn.net/lsxy117/article/details/8647600
这时候执行 go get github.com/wendal/go-oci8 就可以正常下载并编译了.
Oracle 客户端服务配置文件配置要连接到某一台 oracle 服务器, 一般我们用 tnsnames.ora 文件方式来设置. 在一个目录下新建一个 tnsnames.ora 文件(比如我是建立在 /usr/local/instantclient_12_1/tns 目录下的 ),用于配置连接字符串别名。 这个文件内容类似如下,参考 http://hi.baidu.com/sunxden/item/f5e1423a9bfc298df4e4ad4b: ORA10 =
修改全局配置文件,增加一个 TNS_ADMIN 设置 ,指向这个目录。 set TNS_ADMIN=/usr/local/instantclient_12_1/tns 这杨我们连接字符串就可以写成 用户名/密码@实例名
整个安装过程中,全局变量设置的地方很多, 下面是我自己的 profile文件的相关设置: export ora_home=/usr/local/instantclient_12_1 export PATH=$PATH:/sbin:/usr/local/go/bin:$ora_home
export TNS_ADMIN=$ora_home/tns export LD_LIBRARY_PATH=$ora_home
用工具检查oracle的连接连接 oracle时,有时候我们需要用一些工具来判断连接问题,比如常见的: ORA-12154: TNS:could not resolve the connect identifier specified 问题。
这时候就需要装一些类似下面的工具: *Instant Client Package - SQL*Plus: Additional libraries and executable for running SQL*Plus with Instant Client 下载地址: http://618119.com/archives/2008/03/20/76.html 解压缩后我们会看到新加了 sqlplus 工具。 $unzip instantclient-sqlplus-linux.x64-12.1.0.1.0.zip -d ./
**************sqlplus 连接远程数据库系统********************** 方式一:简易连接,不用进行网络配置, 其实就是不用tnsname.ora文件,但只支持oracle10G以上。
如果上述方式测试没问题,表示网络是通的。
方式二:使用 tnsnames 配置的别名 进行网络配置 2.1、图形化操作:Net Configuration Assistant--> 本地Net服务名配置-->添加->服务名->协议(选tcp)->主机名称->端口->完成。 2.2、文本化操作:编辑$ORACLE_HOME/NETWORK/ADMIN/tnsnames.ora文件
如何保证客户端机器连接到oracle数据库呢? 引用:http://www.cnoug.org/viewthread.php?tid=15661
B. 服务器端
连接命令, 比如是上面的配置文件: sqlplus user/password@test sqlplus 连接用户名/密码@tns别名 方式三:tns别名部分用 tns的配置文件替代 sqlplus user/password@(DESCRIPTION=((ADDRESS=(PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = zzz))) if you are using linux or unix OS you need to use quotes else the () are interpreted by the shell e.g sqlplus user/password@'(DESCRIPTION=((ADDRESS=(PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = zzz)))' http://stackoverflow.com/questions/761418/how-come-sqlplus-not-connecting 这种方式对分析 tnsname 文件配置错误非常有帮助, 我就碰到过一次 ( 配错,导致连接不上的问题。 http://www.cnblogs.com/winkey4986/archive/2012/09/20/2695259.html === http://blog.csdn.net/lsxy117/article/details/8647600 http://blog.csdn.net/joker_zhou/article/details/8907915 https://github.com/Centny/Centny/blob/master/Articles/How%20build%20github.com:mattn:go-oci8.md http://blog.csdn.net/joker_zhou/article/details/8907915 ===
http://www.oracle.com/technetwork/cn/articles/dsl/technote-php-instant-090922-zhs.html 参考 pkg-config指南
理解 pkg-config 工具
Linux中的configure、pkg-config、pkg_config_path
|
请发表评论