日期:2014-05-20  浏览次数:20770 次

Runtime.getRuntime().exec(sCmd)问题
public   static   int   exec(String   sCmd){
Process   p   =   Runtime.getRuntime().exec(sCmd);
int   iResult   =   p.waitFor();
return   iResult;
}
sCmd为传入的一个oracle倒入语句(imp),
我现在执行完倒入后,还要进行一个表数据量的核对
现在问题是如果imp语句里表多的话,就会出现问题。表的倒入语句还没执行完,程序就会去查表。我想应该是不是需要做同步?哪位能告知如何改?


------解决方案--------------------
有点难度。。关注一下。。
------解决方案--------------------
表的倒入语句还没执行完

可以导入一个表的某个标志,判断这个标志数据导入后,再进行查询,没有导入就等待一下。
------解决方案--------------------
imp语句里表多的话,就会出现问题。表的倒入语句还没执行完,程序就会去查表
LZ确定是因为没有同步而引起的吗?是不是由于数据量过大导致Process没执行完全
(建议单独exec下看结果)
Process p = Runtime.getRuntime().exec(sCmd);
int iResult = p.waitFor();
==> 如果问题确实是这样~在导表的最后一句更新一个queryFlag字段为true
一直查询queryFlag字段,比较直观,或许有更好的办法~
while(queryFlag==true)
querying~