问题标签 [instantclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
995 浏览

python - 从 AWS 中的 Lambda 函数连接到 Oracle RDS

我正在尝试从 lambda 函数连接到基于 Oracle 引擎的 RDS 并执行简单的选择查询。我已完成以下操作:

  • 下载了 instantclient-sdk-linux.x64-18.3.0.0.0dbru.zip 和 instantclient-basic-linux.x64-18.3.0.0.0dbru.zip
  • 创建文件夹结构~/lambda/lib
  • 提取 lib 文件夹中的 zip 文件,保持 zip 文件的目录结构完整(我不确定这是否是正确的方法。)
  • 下载 libaio1_0.3.110-5_amd64.deb 文件并解压找到两个 .xz 文件,将它们也解压并得到libaio.so.1andlibaio.so.1.0.1文件。
  • libaio.so.1从那里复制到~/lambda/lib
  • 使用中创建了as的共生链接libaio.so.1libaio.so但打开时写道链接已损坏,libaio.so.1.0.1 不存在)~/lambdaln -s libaio.so.1.0.1 libaio.solibaio.so
  • cx_Oracle使用 pip in ~/lambda( pip install cx_Oracle -t .)安装
  • 名为 index.py 的 Lambda 函数(存储在 中~/lambda)如下:

    import os import json import cx_Oracle def handler(event, context): message = "" cursor = None connection = None
    try: connection = cx_Oracle.connect("username", "password", "endpoint_of_rds_instance:port_no/ORCL") cursor = connection.cursor() cursor.execute("SELECT LOGIN-ID from USER_INFO where USER_ID=3972") except Exception as e: message += " {Error in connection} " + str(e) finally: if cursor: cursor.close() if connection: connection.close() return {'message' : message}

  • 压缩它使用zip -r9 ~/upload.zip *

  • 无法直接上传 zip,因为文件大小限制为 10 MB,此 zip 文件为 96 MB。在使用 S3 时,它说超出了解压缩文件的大小限制,因为我的 lambda 文件夹的大小超过 200 MB。

0 投票
1 回答
1417 浏览

python-3.x - 告诉我如何通过 QUERY 从树莓派访问 OracleDB

问题是树莓派和Oracle数据库之间的链接。我们现在已经尝试了很多东西,但问题并没有解决。从树莓派通过网络下载oracleinstantclient-32bit Basic文件和sqlplus文件后,解压文件集合并设置绝对路径导出LD_LIBRARY_PATHPATH。但总是:

我想通过 Raspberry Pi 的 QUERY 语句从 Python 访问 Oracle DB。

0 投票
0 回答
2728 浏览

php - PHP 启动:无法加载动态库 'pdo_oci'

我有以下问题。例如,当我执行 PHP 命令时

我获得以下内容:

当我尝试使用'oci_connect'时,我得到以下信息:

我的环境如下:

  • Windows Server 2016 标准 X64
  • PHP 7.3.2
    • 编译器 MSVC15 (Visual C++ 2017)
    • 架构 x64
    • 启用线程安全
  • Oracle DB 11g (11.2 X86)
  • 即时客户端_11_2 (x86)
    • 路线 C:\instantclient_11_2
  • 我下载了 php_oci8-2.2.0-7.3-ts-vc15-x64 DLL 包(https://pecl.php.net/package/oci8/2.2.0/windows)并将其粘贴到 C:\xampp\php\分机
  • 我的变量PATH 和 TNS_ADMIN的位置为 Instantclient (C:\instantclient_11_2)
  • 我的 PHP.ini 取消了我需要的扩展的注释:

----PHP.INI---

如果我在哪里运行 oci*:

我不知道问题出在哪里。我在那花了两天多的时间,一无所获。如果有人可以帮助我,我将不胜感激。

谢谢

0 投票
1 回答
204 浏览

c++ - Xcode 链接二进制文件与库和意外的文件类型

我想为 C++ 使用 Oracle即时客户端库。我使用 Xcode 作为 IDE。我通过 Project > Build Phase > Link binary with libraries 添加了occi库。我在编译时遇到以下警告和错误。

警告:跳过文件'/Users/user/Library/Oracle/instantclient_12_2/libocci.dylib.12.1'(在框架和库构建阶段出现意外的文件类型'text.man')

错误:架构 x86_64 的未定义符号:“oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* ( )(void , unsigned long), void* ( )( void , void*, unsigned long), void ( )(void , void*))”,引用自:main.o 中的 _main

当然,错误是由于警告引起的。看起来问题来自“.dylib”之后文件末尾的版本号(.12.1)(对于同一文件夹中没有名称的其他库,我没有问题文件扩展名后的版本号)。

可以在此处下载Instantclient库。您将看到下载的文件夹将包含文件libocci.dyliblibocci.dylib.12.1。第一个是到第二个的链接:

我尝试了这两个文件,Xcode 将自动使用libocci.dylib.12.1

问题:

  • .dylib为什么要在扩展后设置版本号?
  • 为什么编译器无法识别文件类型?
  • 怎么做才能让编译器识别文件类型?
0 投票
2 回答
261 浏览

oracle - 登录到 docker hub,但无法拉取 Oracle Instant Client 映像

我在 Dockerfile 中有这个:

当我尝试构建时,我得到:

我以为这张图片在 Docker hub 上是公开的?我登录到 docker hub,使用docker login --username=myself

这是 Docker Hub 帐户: https ://hub.docker.com/_/oracle-instant-client

0 投票
0 回答
8761 浏览

php - 安装 oci8 驱动程序:(pecl install oci8)找不到 Oracle Instant Client SDK 头文件(Mac OSX High Sierra)

我需要为 MacOSX (High Sierra) 安装 oci8 驱动程序。但是,每当我运行命令 pecl install oci8 时,都会有人问我。

请提供 ORACLE_HOME 目录的路径。如果您使用 Oracle Instant Client [autodetect] 进行编译,请使用“instantclient,/path/to/instant/client/lib”。

我用“instantclient,/opt/oracle/instantclient_12_2”和

是输出。

我已经尝试在线下载 oci8.2.2.0.zip 并在没有 pecl 的情况下手动配置。然而,这并没有证明是成功的。

目前,我的 /opt/oracle/instantclient_12_2 看起来像这样:

0 投票
2 回答
2998 浏览

windows - 在没有管理员权限的情况下让 Sqldeveloper 在 Windows 上使用 Instantclient?

我已经在Win10-64bit的企业PC上安装了Sqldeveloper Version 19.1 64-bit Version。

它适用于嵌入式 jdbc 客户端,但我需要使用 Oracle OCI 客户端让它工作。一个原因是对取消长时间运行的查询的支持要好得多。

使用 OCI 客户端(厚驱动程序)肯定需要像 Instantclient_12_2 这样的客户端。我在我的工作站上没有管理员权限,因此将完整的 Instantclient_12_2 复制到了企业 PC。

由于我不允许自己更改 %PATH%,因此我创建了一个带有所需设置的 start.bat 文件,因为没有它,它也将无法工作(已经尝试过)。

当我尝试在不进行此更改的情况下配置另一个 Oracle-Client 时,我收到另一个错误,即需要在任何其他人之前定义到 Instantclient 的 PATH。

现在,使用这个 bat 文件启动 sqldeveloper 可以正常工作。可以使用内部 jdbc 客户端建立连接。

然后,我在 SQLdeveloper (Preferences/Database/Advanced) 中配置了 Oracle 客户端并选择了 Instantclient 目录。

按“测试”按钮打开消息日志“Oracle 客户端测试结果 - 日志”并显示错误。

现在,我迷路了,因为我不是 Java 专家。我想知道,为什么 sqldeveloper 作为 Java 工具正在运行,但即时客户端说它无法创建 JVM。

我使用 OCI-client 的原因是,它对 User-breaks 有更好的支持。

0 投票
1 回答
646 浏览

node.js - dockerfile - NJS-045:无法为 Node.js 10.16.0(linux、x64)加载 oracledb 附加二进制文件

我在公司防火墙后面,我有一个 node.js 应用程序可以通过 docker 映像部署在 Openshift 容器上。该应用程序需要 oracledb 附加二进制文件 - 要在服务器上配置的 Oracle InstantClient 软件包。

我有以下 Dockerfile:

构建正在成功,但是当我部署和运行时,它会抛出以下错误:

/usr/src/app/design-pattern-exemplars/node_modules/oracledb/lib/oracledb.js:68 throw new Error(nodbUtil.getErrorMessage('NJS-045', nodeInfo)); ^

错误:NJS-045:无法加载 Node.js 10.16.0(linux、x64)的 oracledb 附加二进制文件 无法加载 /usr/src/app/design-pattern-exemplars/node_modules/oracledb/build/Release/oracledb .node /usr/src/app/design-pattern-exemplars/node_modules/oracledb/build/Release/oracledb.node:无效的ELF头Node-oracledb安装说明: https ://oracle.github.io/node-oracledb/ INSTALL.html 您必须在 LD_LIBRARY_PATH 中有 64 位 Oracle 客户端库,或者使用 ldconfig 进行配置。如果此计算机上没有 Oracle 数据库,请从 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html安装 Instant Client Basic 或 Basic Light 软件包

我究竟做错了什么?

PS 在我看到其他一些关于 SO 的帖子后添加了前 2 个命令,这些帖子有一些类似类型的问题,但它与 docker 无关,而是通过 sudo 运行的。

请帮忙!自从过去 10 天以来,我浏览了其他帖子,现在我感到无助。让我知道是否需要其他任何东西。

0 投票
1 回答
2327 浏览

r - 在 R 中(以及安装 ROracle 包时),如何设置 OCI_LIB64?

在 R 中(以及安装 ROracle 包时),如何设置 OCI_LIB64?我已经下载了 Oracle Instant Client 并将 wd 和 OCI_LIB64 指向它。我有 Windows 10 企业版。它是 RStudio 版本 1.1.463 和 R 版本 3.4.3。

我尝试了以下方法:

但我得到以下输出和错误:

我该怎么做才能正确设置 OCI_LIB64 以便安装 ROracle?

谢谢!

更新(8_28_19):

我已将 OCI_LIB64 和 OCI_INC 设置为正确的路径

但是现在我得到以下响应(即使所有必需的标头都在该文件中):

0 投票
2 回答
1170 浏览

vba - 是否可以在没有 tnsnames.ora 文件的情况下在 Windows 10 上建立 32 位 ODBC 连接?

我有一个连接并查询 Oracle 数据库的 VBA (Excel) 宏。在 Windows 7 下运行,以下连接字符串有效:

我和这个 Excel 模板的其他用户正在转换到带有 32 位 Office 365 的 Windows 10(64 位)。我喜欢这个连接字符串的地方是它不需要单独的 tnsnames.ora 文件,一个我想保留的功能。我也知道 Microsoft 驱动程序已被弃用(无论如何它不能开箱即用),所以现在是时候改变它了。

我安装了以下内容:

  • Oracle Instant Client 12.2(32 位)
  • 适用于 Instant Client 12.2(32 位)的 Oracle ODBC 驱动程序
  • Visual Studio 2019(32 位)(假设 Oracle 驱动程序向前兼容)

我已经证实:

  • PATH 中的第一个值设置为安装 Instant Client 12.2 的目录
  • ORACLE_HOME 设置为同一目录
  • 只有一个 ORACLE_HOME 变量
  • 驱动程序(instantclient_12_2 中的 Oracle)在 32 位 ODBC 管理工具中可见

我尝试了以下连接字符串的各种调整,但没有运气

我试过用“数据源”代替“服务器”,用“SERVICE_NAME”代替“SID”,两者同时使用。我还尝试过 Excel 365 的内部 ODBC 连接中的字符串。我不断收到的错误是:

ORA-12560: TNS: 协议适配器错误

我开始怀疑在 Windows 10 下需要 tnsname.ora 文件。是否可以在不使用 tnsnames.ora 文件或除安装 Oracle 驱动程序之外的任何其他操作的情况下创建 Windows 10 32 位 OBDC 连接用户的机器?

编辑:我创建了一个可远程访问的 tnsnames 文件。当连接字符串使用该文件并且设置了 TNS_ADMIN 环境变量时,它会连接。如果我在 VBA 本身中使用 tnsnames 文件中的确切文本,它不会识别它(TNS 适配器错误)。我将假设我对需要 tnsnames.ora 文件的 Oracle 驱动程序的怀疑是正确的,至少对于 VBA 是这样。