php调用sqlldr失败,php system()命令调用sqlplus导致php挂起
我有一个简单的PHP脚本,它调用sqlplus sqlldr文件并将数据转储到oracle中的表中 . 我把问题缩小到我认为是我的PHP脚本挂起的原因...这是:当我从php CLI运行时,系统命令不会回到php,而是挂在sqlplus的土地上 . 当从浏览器运行时,脚本按预期执行,然后我到达打印到浏览器的最终echo命令:我现在已经完成了运行 .
system('sqlplus username/password@tnsNameOfDatabase',$out);
echo $out;
system('exit',$out);
echo $out;
echo 'I am done running now';
从已加载sqlplus的命令行运行此脚本将正确连接到数据库,我从该连接的输出如下所示:
SQL*Plus: Release 12.1.0.2.0 Production on Wed Mar 8 15:37:34 2017
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Last Successful login time: Wed Mar 08 2017 15:37:18 -05:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning and Oracle Label Security options
现在...问题是这导致我的PHP程序挂起,我不能再回到PHP脚本 . 如何退出sqlplus CLI以返回运行的php脚本?
SQLPLUS中的典型退出命令只是“退出”,我尝试过(如上所示)...当手动运行时,会产生以下结果:
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning and Oracle Label Security options
如何退出sqlplus并返回应该继续的脚本?任何帮助是极大的赞赏!
再次调用此sqlplus脚本的实际方法 - 从浏览器调用时工作得很好,但是从CLI调用时,它会在返回之前在此方法中挂起 .
private function loadTempData($object) {
$this->getLog()->appendLogFile('Constructed Control File: '.$object->getTempData()->getQaveLoadControl()->getFullPathFileName());
$this->getLog()->appendLogFile('Result saved in: '.$object->getTempData()->getExportFile()->getFullPathFileName());
$object->getInsertCommandFile()->appendContent('$ sqlldr '.$this->getPersistEnv()->getUserSlid().'/'.$this->getPersistEnv()->getPassword().'@'.$this->getPersistEnv()->getDatabase().' control='.$object->getTempData()->getQaveLoadControl()->getFullPathFileName().' log='.$object->getTempData()->getQaveLoadControl()->getFullPathFileName().'.log');
$this->getLog()->appendLogFile('Loading data to Temp Table');
$command = 'sqlplus '.$this->getPersistEnv()->getUserSlid().'/'.$this->getPersistEnv()->getPassword().'@'.$this->getPersistEnv()->getDatabase().' @'.$object->insertCommandFile->getFullPathFileName();
$this->getLog()->appendLogFile($command);
system($command,$output);
// this line does not make it into the log...
$this->getLog()->appendLogFile($output);
// this method does not return when run from CLI
return true;
}
php调用sqlldr失败,php system()命令调用sqlplus导致php挂起相关推荐
- Dubbo启动,调用方法失败【问题:调用超时】
在一个调用dubbo里面的一个方法getAllSku时,显式调用超时. com.alibaba.dubbo.rpc.RpcException:Failed to invoke the method g ...
- java调用接口失败重调_Java调用WebService接口的常见错误
1.如果出现这个错误:java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException,原因是没有导入 axis2-saaj.jar包 2.如果 ...
- 调用 SSPI 失败,请参见内部异常,System.Net.Security.SslState.StartSendAuthResetSignal 异常解法
部署系统,登录时,出现下面异常错误: 调用 SSPI 失败,请参见内部异常. 来源: System 实例: 在 System.Net.Security.SslState.StartSendAut ...
- php seekdir,perl 模式匹配总结和shell命令调用方法 (zz)
正则表达式――perl模式匹配 Practiacl Extraction and Report Language 一.模式匹配操作符 1.tr/ / / 替换操作符不支持正则表达式 也不具备双引号替换 ...
- Java调用系统解压_记一次Java利用cmd命令调用WinRAR压缩文件-压缩文件
前言 最近在和一个档案管理系统对接,需要把我方系统文件压缩成zip格式,通过ftp的方式upload到指定的服务器上,考虑到Java的平台无关性,一开始便使用Java自带的类库java.util.zi ...
- android+jni+构造函数,在JNI中调用构造函数失败Android
我想从我的JNI Android代码调用构造函数;但不知何故,它失败,以下例外.. 我相信我失去了一些非常小的东西;但我无法弄清楚......任何人都可以请指出?在JNI中调用构造函数失败Androi ...
- (转)解决在firefox下js调用as失败问题
解决在firefox下js调用as失败问题 自:http://www.cnblogs.com/mfryf/archive/2012/04/17/2453024.html 问题描述:写了一个js与as的 ...
- 0353-如何使用curl命令调用CM的API动态配置Yarn资源池
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...
- 解决 conda 环境中调用 python 失败的问题
解决 conda 环境中调用 python 失败的问题 问题描述 问题1 解决办法 问题2 解决办法 解决问题1 的对比操作 切换环境的正常命令流程 不退出次级环境导致执行python出错的命令流程 ...
最新文章
- 【Java】eclipse如何导入项目
- ios6.x越狱将不会再呈现了
- HDUOJ-2094-产生冠军
- html5中加入音频,使用HTML5在网页中嵌入音频和视频播放的基本方法
- rsync 配置详解
- [Java基础]获取Class类的对象
- Diango博客--8.解锁博客侧栏
- tensorflow9-mnist手写数字识别进阶-多层神经网络建模
- 【BZOJ 3172】单词
- spring cloud互联网分布式微服务云平台规划分析--spring cloud服务监控中心
- html 文本框 获取焦点事件,JS的文本输入框获得焦点与失去焦点的事件
- Word撤销键(Ctrl+z)无效的解决方法
- 局域网服务器配置一个无线路由,局域网怎么增加无线路由器
- 普通人的编辑利器——Vim
- 阿尔伯塔计算机硕士要求,阿尔伯塔大学计算机硕士专业介绍
- Matlab符号运算(符号的创建和简单运算、函数求导、不定积分和定积分、解方程组)代码和解释
- (java)跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
- NFT艺术品交易平台
- sakila数仓实战案例
- matlab电流源,DC电压/电流源 GS200
热门文章
- mysql cluster常见问题访问_MySQL Cluster的常见问题
- ROS2——Windows上的安装笔记(legacy)
- Jetbrain系列IDE设置
- 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
- 补充“为什么Scrum不行”
- 算法不会,尚能饭否之对分查找二叉树(又为快速排序之二叉树实现)
- Oracle 查看索引语句
- IT职场人生系列之十六:入职(新手篇)
- Python-将一个列表的数据复制到另一个列表中
- 解决网页中Waiting (TTFB)数据加载过慢的问题