限制存储过程的某个语句的执行时间
我现在的ORACLE通过透明网关连接了一个SQL SERVER数据库.然后在ORACLE的一个存储过程里面需要调用SQL SERVER的存储过程.但有可能调用的时候出现网络问题,而致使oracle存储过程一直等待调用sql server存储过程的返回直到超时,但这个超时时间可能会很长,所以,我现在希望能在ORACLE存储过程里面人为的限制调用SQL SERVER存储过程的等待时间,请问有什么方法或语句可以实现?
我现在的ORACLE通过透明网关连接了一个SQL SERVER数据库.然后在ORACLE的一个存储过程里面需要调用SQL SERVER的存储过程.但有可能调用的时候出现网络问题,而致使oracle存储过程一直等待调用sql server存储过程的返回直到超时,但这个超时时间可能会很长,所以,我现在希望能在ORACLE存储过程里面人为的限制调用SQL SERVER存储过程的等待时间,请问有什么方法或语句可以实现?
log_StoO(
log_id, --存储过程执行id,可用序列,并记住此值
begintime, --存储过程开始执行时间
endtime, --存储过程结束执行时间
maxtime, --允许存储过程执行时间
sucess_flag --成功标志位,1-成功,0-失败
)
做一个JOB,一定时间间隔便执行一次如下的存储过程。做一个存储过程:
对table log_StoO中的sucess_flag=0的记录进行查找,判断如果begintime+maxtime>sysdate,
则判定此log_id超时,此进程已死,然后做关联查找并杀死此进程(本人只提供此方法,实际操作时可能还有好多细节要等LZ来完善)。