`
itspace
  • 浏览: 978372 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

OCI安装错误记录(二)

阅读更多
由于Oracle 11g R2 X64在windows 2008 R2 64位环境下,并没有提供$ORACLE_HOME/lib32目录,再加上OCI8只支持在32位环境下安装的天然特性,http://itspace.iteye.com/blog/722876费了很大劲终于将OCI8成功装上。
引用
$ irb
irb(main):001:0> require 'oci8'
=> true
irb(main

不了在使用时,却报如下错误
引用
$ ruby ruby_install_test.rb product
Check general_config Start.....
general_config check error.
/usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8.rb:52:in `init': OCI Library Initialization Error (OCIError)
        from /usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8.rb:52
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from ruby_install_test.rb:3

OCI8虽然装上,但是不能使用,也就意味着产品不可用。只能另外想办法。尝试将环境变量(包括ORACLE_HOME和LD_LIBRARY_HOME)设成client目录,再次执行,发现正常通过
引用
$ ruby ruby_install_test.rb
Check general_config Start.....
Check general_config end.
Check manager_config Start.....
Check manager_config end.
Check database.yml Start.....
Check database.yml end.

由此可知在,32位的client环境下,能运行正常。但是由于产品需求,必须运行在X64的ORACLE_HOME环境下,于是思考,在X64里面的环境变量PATH前面加上client路径,然后将client路径下的SQLPLUS移除。
引用
$ more .bash_profile
export ORACLE_HOME=c:/app/Administrator/product/11.2.0/dbhome_1
export PATH=/cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/bin:$PATH
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TEMP=c:/tmp
export TMPDIR=c:/tmp
export RUBYOPT=rubygems
export SCRIPT_HOME=c:/dbra/app/shells
export PATH=$PATH:$SCRIPT_HOME
export RUBY_HOME=/cygdrive/c/dbra/app/ruby
export WEB_HOME=/cygdrive/c/dbra/app/web
export PATH=/cygdrive/c/app/Administrator/product/11.2.0/client_1:/cygdrive/c/dbra/app/shells:/cygdrive/c/oracle:$PATH

再次执行成功,终于解决了在11G R2 X64环境下装OCI8的问题。不知道在aix,hp-ux下面会不会遇到类似问题,拭目以待,但至少提供了一种解决方法之道。

总结:
1、ORACLE 11G client 32bit 在windows2008 R2环境下安装之后没有SDK目录,这导致OCI8安装不成功,在安装完client成功之后,在其ORACLE_HOME目录中需要再次解压instantclient-sdk-win32-11.2.0.1.0.zip,再次安装OCI8即可成功。
2、如需安装其他节点,无须在其他节点再次安装client,只需要将client拷贝至其他节点即可,windows环境下也支持拷贝。
1
3
分享到:
评论

相关推荐

    oracle oci 批量插入源代码

    6. **错误处理**:在实际应用中,源代码还会包含错误处理机制,例如oci_error函数用于获取错误信息,oci_handle_free释放资源,确保程序在遇到问题时能够正常运行并给出反馈。 7. **测试**:描述中提到示例代码经过...

    OCI简单封装类能动态返回记录集

    6. **错误处理**:封装类应有一个良好的错误处理机制,如异常处理,将oci的错误信息转化为易于理解的字符串。 7. **内存管理**:由于OCI API使用了大量指针和内存分配,封装类需要确保正确释放分配的内存,避免内存...

    64位 OCI.DLL

    - 如果在Python中遇到“找不到oci.dll”或类似错误,可能需要设置环境变量ORACLE_HOME和PATH指向oci.dll的路径。 总的来说,64位OCI.DLL对于在64位系统上使用PL/SQL和Python CX_Oracle库连接Oracle数据库至关重要。...

    OCI接口类 OCI接口类

    OCI提供了丰富的错误处理机制,包括返回码、错误栈和诊断记录。通过`OCIGetError`和`OCIServerVersion`等函数,开发者可以捕获和报告错误信息。 8. 大型对象(LOBs) OCI提供对Oracle的BFILE、BLOB、CLOB和NCLOB...

    简单的oci案例源码

    - **插入(INSERT)**:oci案例会演示如何插入新的记录到表中,包括如何处理二进制数据。对于二进制数据,可能需要使用`OCIBindByPos`来绑定blob类型的列。 - **查询(SELECT)**:通过执行SQL查询,案例会展示...

    常用的OCI函数说明

    2. **错误处理**:OCI提供了一个错误句柄(`OCI_HTYPE_ERROR`),用于记录OCI调用时产生的任何错误信息。可以通过`OCIErrorGet()`函数来获取这些错误信息。 3. **服务上下文句柄**(`OCI_HTYPE_SVCCTX`):用于表示...

    linux C语言 oracle_11g oci 单行, 多行 获取oracle中的记录

    在IT行业中,Linux操作系统、C语言和Oracle数据库的结合是常见的技术栈,特别是在需要进行高效、底层数据库操作的场景...记住,进行oci编程时,务必正确配置环境,理解oci接口的使用方式,以及正确处理错误和资源管理。

    OCI编程简介

    - **错误句柄**: 记录OCI函数调用过程中产生的错误信息。通过`OCIErrorGet()`函数可以从错误句柄中获取具体的错误详情。 - **服务器环境句柄**: 包括服务器、用户会话和事务等不同层次的信息。 - **服务器句柄**: ...

    oci_class--oracle oci c++ class and example

    5. **异常处理**:在处理数据库操作时,oci_class 可能会封装Oracle OCI的错误处理,当出现错误时抛出C++异常,便于开发者捕获和处理。 6. **预编译语句和参数绑定**:oci_class 可能支持预编译SQL语句,提高执行...

    Oracle OCI API封装类Oracle OCI API封装类

    5. **异常处理**:通过oci_error()获取错误信息,并可能抛出自定义的异常类,以便在应用程序中捕获和处理。 6. **事务控制**:oci_trans_start()、oci_trans_commit()、oci_trans_rollback()等函数被用来管理事务,...

    oci导出工具,oracle数据导出工具

    lu.txt文件可能是运行oci导出工具时生成的输出日志,记录了导出过程的详细信息,包括成功操作、警告和错误,这对于排查问题和了解导出进度非常有帮助。 oci导出工具的优势在于它可以实现高效的数据导入导出,特别是...

    oci-oracle.rar_OCI oracle_oci_oracle

    4. 错误处理:在oci-oracle系统中,必须处理可能出现的错误。oci_error()函数可以帮助捕获和打印错误信息,确保程序的健壮性。 5. 事务处理:对于数据库操作,事务管理是必不可少的。OCI提供了`OCITransStart()`、`...

    c#封装oracle的OCI

    6. 错误处理:在每个关键操作中添加适当的异常处理,捕获并记录Oracle数据库可能出现的错误。 7. 部署注意事项:封装后,虽然应用可以不再依赖Oracle客户端的全局安装,但用户仍需要在机器上安装Oracle Data Access...

    Oracle数据访问 获取记录总数

    然后,在VC6项目中,包含必要的头文件和库,例如`#include <oci.h>` 和链接相应的库文件,如oci.lib和oraociei.lib。 接下来,我们需要创建一个数据库连接。在MFC中,这通常通过CDatabase类来实现。实例化一个...

    Oracle oci 87报错 instanticlient_10_2 64位

    错误的连接字符串或配置可能导致oci错误。 6. **权限问题**:运行应用程序的用户需要有足够的权限访问Instant Client的文件和执行网络连接。 解决这个问题的步骤可能包括: 1. 检查并调整系统资源,确保有足够的...

    OCI函数 中文的

    - **OCI错误句柄**(OCI_HTYPE_ERROR):用于记录OCI操作过程中的错误信息,可以通过`OCIErrorGet()`函数获取错误详情。 - **OCI服务上下文句柄**(OCI_HTYPE_SVCCTX):代表与数据库之间的连接。 - **OCI服务器句柄...

Global site tag (gtag.js) - Google Analytics