Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->Oracle ->正文

特别版和Zend Core for Oracle

来源:Oracle  作者:Webmaster 时间:2007-04-23 点击: [收藏] [投稿]

Oracle 环境变量

oci8 扩展始终需要查找 Oracle 库和消息文件。找不到正确的文件将导致 PHP 返回 Oracle“ORA-12705:Cannot access NLS data files or invalid environment specified”。如果存在多个 Oracle 安装,则可能发生冲突。ZCO 包含它自己的 Oracle 即时客户端本地副本,该副本包含 Oracle 库和消息,因此您不会看到该错误。

NLS_LANG(全球化)和 TNS_ADMIN(网络)变量通常是 ZCO 所必需的。

必须设置启动 Apache 的环境中的环境变量,以便 oci8 扩展在首次加载时可以访问这些值。在 PHP 脚本中不要使用 putenv() 设置环境变量。所有 oci8 函数的反映并不一致。它肯定不可移植。

ZCO 修改了 apachectl,添加了 LD_LIBRARY_PATH。(如果 Oracle 提供了以不同方式链接的即时客户端,则未来版本的 ZCO 可能不需要该操作)。这使得可以重用 ZCO GUI 控制台来启动 Apache。

您可能需要使用 ZCO 的 TNS_ADMIN 和 NLS_LANG 执行类似操作,或者如果您手动启动 Apache,则在调用脚本中设置环境:

#!/bin/sh

TNS_ADMIN=/usr/local/apache/conf

export TNS_ADMIN

echo Starting Apache

#export > /tmp/envvars

/usr/local/apache/bin/apachectl start

该示例假设 /usr/local/apache/conf/tnsnames.ora 存在。TNS_ADMIN 指向包含 tnsnames.ora 文件的目录。

关闭连接

在每个脚本结束时,将自动关闭使用 oci_connect() 或 oci_new_connect() 打开的连接。您也可以调用以下代码来显式关闭连接:

oci_close($c);

将回滚任何未提交的数据。

如果长时间运行的脚本只用少量时间与数据库交互,则您可能要关闭连接以将资源释放给其他数据库用户使用。

oci_close() 无法关闭使用 oci_pconnect() 打开的连接。这与持久资源在其他 PHP 扩展中的工作方式类似。

Oci_close() 通过引用计数起作用。仅当完成所有连接引用时,才会实际关闭连接。在本示例中,$c1 和 $c2 是一个连接,但仅当脚本结束时,才会关闭数据库连接。

$c1 = oci_connect('hr', 'hrpw', '//localhost/XE');

$c2 = oci_connect('hr', 'hrpw', '//localhost/XE');

do_query($c1, 'select user from dual');

oci_close($c1);

do_query($c1, 'select user from dual');

do_query($c2, 'select user from dual');

oci_close($c2);

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:通过NetApp Simulator学习RAC   下一篇:开放和基于标准的智能套件

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号