问题标签 [oci8]

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 回答
500 浏览

php - 将 PHP 脚本连接到远程 Oracle 数据库 Proplem

我正在尝试将 php 脚本连接到远程 oracle DB,但是在阅读了这篇文章之后,我收到了以下错误消息:

遇到 PHP 错误

严重性:警告

消息:oci_connect():ORA-12154:TNS:无法解析指定的连接标识符

文件名:控制器/cancel.php

行号:13

有谁知道问题可能是什么?

0 投票
1 回答
233 浏览

php - Linux 中 PHP 的 Oracle 模块

有什么方法可以直接访问远程托管的 Oracle 数据库,而无需在我的计算机上安装 oracle。

我已经有了远程托管的 Oracle 数据库的主机名、数据库名、用户名和密码。我正在使用 Red Hat Enterprise Linux Server 第 5 版 (Tikanga),但尚未安装 Oracle。

你的帮助将是宝贵的。先感谢您

0 投票
1 回答
2816 浏览

php - 如何在 Oracle 钱包中使用 PHP?

可能重复:
使用 Oracle Wallet 从 PHP 连接到 Oracle DB

我们计划实施 Oracle Wallet。它从 sqlplus 工作,如下所示。这表明钱包功能正在运行。

到目前为止,我还没有成功使它从 php 工作。我们安装了带有 OCI8 扩展的 php。请特别指导我 oci_connect 命令及其语法。

这是我的 php 文件 -

当我执行命令时$ /mccelog/package/php/php-5.4.7/bin/php connect4.php

请注意,我已正确设置ORACLE_HOMELD_LIBRARY_PATH. 第 7 行是导致该错误的 oci_connect 字符串。如何使用 oci8/oci_connect 连接到 Oracle 数据库?

提前谢谢你。问候。-Shashi Divekar

0 投票
3 回答
9518 浏览

php - 如何在 Mac OS X 10.8 Mountain Lion 上安装 OCI8 PHP 扩展

我需要在 Mountain Lion 上为 PHP 使用 OCI8 模块,该模块将使用 oracle 即时客户端,目前仅支持 32 位。

我已经安装了 32 位版本的 oracle 即时客户端并使用 sqlplus 对其进行了测试,一切似乎都很好。

但是现在我需要让 PHP 扩展 OCI8 工作,这导致我用自制软件为 apache 构建了一个 32 位 PHP 模块。这似乎再次起作用,但据我了解,这现在需要 32 位的 Apache 构建,内置版本似乎只有 64 位。我不知道如何将 Apache 构建为 32 位,我什至不确定这是必需的,所以有点不知所措。非常感谢阿拉斯泰尔的任何帮助

编辑:

现在我已经放弃了原生安装,转而使用 Vagrant 和 Ubuntu 进行虚拟化开发:https ://github.com/afhole/vagrant-lamp

0 投票
1 回答
719 浏览

php - OCI_connect/OCIPLogon ORA-01031: 权限不足

我们有两个 oracle 帐户 log_reader 和 log_writer。log_reader 具有读取数据的读取权限。log_writer 具有将数据写入数据库的写入权限。该应用程序从 Apache 运行并使用 Perl 和 PHP。密码被硬编码到 php/perl 脚本中。最近我们正在尝试迁移到 Oracle Wallet 以消除硬编码密码。Oracle 钱包已配置并且以下工作 - 用于 log_reader 和 log_writer 帐户的 sqlplus 和 perl。用于 log_reader 帐户的 php。php 不适用于 log-writer 帐户。我们收到以下错误 -

PHP 代码 -

简而言之,使用 Oracle Wallet,sqlplus 和 Perl 没有问题。但是对于 PHP,当我们尝试将数据写入/插入数据库时​​,我们会遇到问题。阅读 PHP 工作正常。

到目前为止我已经尝试过,但没有运气 -

php 不适用于 log-writer 帐户。我们收到以下错误 -

0 投票
2 回答
11661 浏览

php - php-oci8 编码问题

有人问过类似的问题,但常规的解决方案对我不起作用。可能我错过了一些东西。我快要失去理智了:(((

从标题可以理解,我有一个非ascii内容的oracle数据库。我想使用oci8用php查询/显示它。

首先,数据库在ISO8859P9,即查询

返回

所以我相应地设置了NLS_LANG 变量,即getenv("NLS_LANG") 返回"AMERICAN_AMERICA.WE8ISO8859P9"。

我插入AddDefaultCharset ISO-8859-9到 /etc/apache2/conf.d/charset 文件中,并且总是包含<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9">在 php 文件的 html 内容的 head 部分中。因此,当我通过 firebug 检查时,我看到响应的“Content-Type”标头是“text/html; charset=ISO-8859-9”。

最后,我在 /etc/php5/apache2/php.ini 文件中有一行,default_charset = "ISO-8859-9"在输出 phpinfo() 的核心部分,我看到 default_charset 是 ISO-8859-9。

毕竟这些东西,当我检索一个带有字符的字符串İ并回显它时,它显示为'?'。那就是问题所在!!!当我查询时select dump(nameofthatstring, 16)...,我看到它的字节值是 DD,即根据 8859-9 是正确的。

我不确定它是否相关,但我会给出最后的细节:当我ı在表单中输入一个字符并在GET中通过ajax提交时,它被转换为%FD,即8859-9对应的值,没有问题.

当我对它进行 urldecode 并回显它时,它又可以了,我明白了ı。但是当我有一个包含ı在其 where 子句中的字符串的查询时(在接收到 ajax 请求之后),它返回空集。

但是,如果我使用 CHR(253) 选择行,则会正确选择行,但再次打印这些行会导致“?” 人物。

我真的被困住了。任何帮助将不胜感激。提前致谢。

编辑:

首先,我试过这个:

但是没有解决,所以我设置了 NLS_LANG 变量,改成如下:

没有改变...

0 投票
1 回答
676 浏览

ruby - 需要 oci8 时脚本失败

我是 ruby​​ 新手,我遇到了这个奇怪的问题。我在 64 位 Win7 上安装了 ruby​​ 1.9.3p125、Oracle11gXE(ver 11.2.0.2.0)。我可以毫无问题地运行此脚本:

还有这个脚本:

但只要我这样做:

事情出错了 - 我收到了这个错误:

另一方面,这工作正常:

你能帮我解决这个问题吗?当需要 'oci8' 时,'watir-webdriver' 似乎有一些问题。但这可能是错误的假设——可能是一些配置问题。谢谢你的帮助!

0 投票
0 回答
1279 浏览

php - 命令行 oci OCIEnvNlsCreate() 失败

我收到 PHP 警告:oci_connect(): OCIEnvNlsCreate() 失败。当我尝试从命令行执行 php.exe "c:\xampp\htdocs\test.php" 时......

但是,如果我通过 (localhost/test || ip/test) 浏览器浏览它,它就可以工作....

同一台机器上的相同代码和 instandclint (INSTANTCLIENT_11_2) 版本可以工作......我确定我做错了什么。

基本上我想从命令提示符(计划运行)运行一个 php 文件,它会做一些事情并将数据上传到 oracle 服务器。手动它正在工作,但不是来自调度......

任何帮助都会非常感谢。(现在我正在从我的演示 PC 运行该计划,它可以将数据上传到不是的 LIVE pc)奇怪!

谢谢

法内斯

测试文件

0 投票
1 回答
2841 浏览

ruby-on-rails - Rails 3.0 - 无法使用 Bundler 加载 ruby​​-oci8

Rails n00b 这里 - 需要一些帮助。我正在尝试将 Rails3 应用程序从 Linux 移植到 Windows。我的 Gemfile 如下所示:

我在这台 Windows 机器上没有 Oracle 客户端,所以我无法本地编译 ruby​​-oci8 gem。

我已经在我的 Gemfile 中注释掉了“ruby-oci8”行,并从这里手动安装了 gem:http ://rubygems.org/downloads/ruby-oci8-1.0.6-x86-mswin32-60.gem 。我还将必要的 DLL 复制到ruby\bin.

我已经验证它有效:

这会从我的数据库返回大量数据,所以我知道它有效。

但是,如果我尝试require 'oci8'从 rails 控制台(或正在运行的应用程序),我会得到以下信息:

我认为这发生在 b/c Rails 只加载 Gemfile 中指定的 gem,但我不知道如何指定它!我已经安装了我需要的 gem:

然而,如果我在 Gemfile 中取消注释这一行:

bundler 尝试下载并编译另一个 1.0.6,这当然会失败。我也尝试了所有这些变体,但均未成功:

为什么 bundler 试图安装我已经拥有的 gem?如何正确指定版本和平台以使 Bundler 看到该 gem 已安装,并将其包含在 Gemfile.lock 中?这里有没有其他解决方案可以在不安装 Oracle 客户端的情况下使用?

编辑 1

根据凯尔的建议,我尝试了以下方法:

这使得 Bundler 运行成功!

但是,现在尝试从 Rails 控制台要求“oci8”给了我这个:

它缺少的文件ext/oci8位于已安装的 gem 目录下,但它看不到它。

还有什么我可以做的吗?

0 投票
4 回答
15710 浏览

php - oci_connect() 仅适用于命令行

好的,所以我对 oci、apache、php 和 suse 有这个可怕的问题。首先,版本:

问题

我有非常简单的 php 文件:

当我从命令行运行它时,它执行得很好:

但是当我在浏览器中运行它时,它给了我:

阿帕奇配置

我已经为这个问题苦苦挣扎了一段时间,我很确定我的 apache 配置是正确的。

我在任何 apache 进程启动之前导出所有必需的变量- 我添加了

/etc/init.d/apache2脚本的开头(我启动 apache /etc/init.d/apache2 start)。

Apache 从wwwrun用户运行,该用户在oinstalldba组中:

可能的问题

Environment我在输出部分没有任何环境变量phpinfo();- 这可能是问题吗?如果是,我该如何解决这个问题?这是某种安全问题吗?我读过启用 SELinux 的类似问题,但我没有,我的防火墙已关闭。

解决方案?

任何帮助将不胜感激!