问题标签 [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.
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.1
andlibaio.so.1.0.1
文件。 libaio.so.1
从那里复制到~/lambda/lib
- 使用中创建了as的共生链接
libaio.so.1
(libaio.so
但打开时写道链接已损坏,libaio.so.1.0.1 不存在)~/lambda
ln -s libaio.so.1.0.1 libaio.so
libaio.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。
python-3.x - 告诉我如何通过 QUERY 从树莓派访问 OracleDB
问题是树莓派和Oracle数据库之间的链接。我们现在已经尝试了很多东西,但问题并没有解决。从树莓派通过网络下载oracleinstantclient-32bit Basic文件和sqlplus文件后,解压文件集合并设置绝对路径导出LD_LIBRARY_PATH
等PATH
。但总是:
我想通过 Raspberry Pi 的 QUERY 语句从 Python 访问 Oracle DB。
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*:
我不知道问题出在哪里。我在那花了两天多的时间,一无所获。如果有人可以帮助我,我将不胜感激。
谢谢
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.dylib和libocci.dylib.12.1。第一个是到第二个的链接:
我尝试了这两个文件,Xcode 将自动使用libocci.dylib.12.1。
问题:
.dylib
为什么要在扩展后设置版本号?- 为什么编译器无法识别文件类型?
- 怎么做才能让编译器识别文件类型?
oracle - 登录到 docker hub,但无法拉取 Oracle Instant Client 映像
我在 Dockerfile 中有这个:
当我尝试构建时,我得到:
我以为这张图片在 Docker hub 上是公开的?我登录到 docker hub,使用docker login --username=myself
这是 Docker Hub 帐户: https ://hub.docker.com/_/oracle-instant-client
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 看起来像这样:
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 有更好的支持。
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 天以来,我浏览了其他帖子,现在我感到无助。让我知道是否需要其他任何东西。
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 设置为正确的路径
但是现在我得到以下响应(即使所有必需的标头都在该文件中):
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 是这样。