请教存储过程调用 有一台服务器装了ORACLE,本机装了客户端访问工具toad。本机访问服务器一个存储过程,这个存储过程每次要执行大概10分钟的样子。有什么办法让存储过程在服务器后台运行,不影响本机,然后返回信息。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是UNIX服务器的话,写一个shell脚本调过程,再用nohup方式执行这个shell脚本。 同问执行过程中如果想进行其他操作,新建一个session 如楼上说的 我要进行其他操作 而不是去等那个存储过程执行完之后 才能使用toad那样 那样效率太低了,重新再开个toad 机子慢的想吐血 但是 session怎么建立 没怎么接触 是到这个公司来 才接触Oracle深一点 设置一个toad参数,允许多线程执行就ok了.参数是:oracle->transactions->execute queries in threads 我的要求是 要是我的toad关掉了 那个存储过程 依旧在服务器运行 这样还是达不到啊 两个机器互不影响 没用过toad..pl/sql dev中,新建一个页面窗口,就新增一个sessiontoad里应该有类似的功能 不能关掉,关掉的话这个session就中止了服务器端也会停止执行过程而且你关掉的话,你想服务器如何将结果返回给你? 我的运行结果 在服务器保存在一张表里面了 可以查询的 听说可以关掉toad的 但是 就是不知道怎么是实现 啊 同#2如果服务器是unix,写个shell做 如果是windows 能不能写一个bat呢? 个人感觉也应该可以的吧。 #13应该可以写,但是问题是,windows和unix的机制有点不一样,unix本身是多用户多进程,所以shell文件可以在后台运行,但是windows就不能够确定把这个运行bat文件的机器关了后果会怎样。 开个dos窗口sqlplus user/password@tnsnameexecute myprocedurecommit;只要你不关闭这个dos窗口就行了 写一个小shell吧,类似于这样:/oradata1/aiobstest/zhengzw/shellsql>% cat test.shsqlplus obstest/obstest@aiobs7 << !spool testselect * from tab;spool off!写完后,chmod u+x test.sh,给予执行权限,你执行的时候,在命令行输入:test.sh & 就可以了,尽管屏幕在闪动,你退出就可以了,因为它放在后台执行了,但是如果你输入test.sh,然后回车,是没有赚到后台执行的,注意 为何不直接用Oracle自带的东东呢?建一个job就可以放后台执行了。 赞成建立一个job,并在存储过程中将执行结果写入到一张日志表中。要看执行结果,就进入日志表查询。 同意vc的。服务器是在后端执行的,你这里的停住了,是客户端需要等待服务器端的返回而已。不想等待,ctrl+c即可。 unix写个shell文件,weindows写个.bat放那儿运行就可以了. 建Shell和bat文件都不行的 ,服务器就只开发Oracle端口给我登陆用。我想 存储过程建立在服务器上,本地只要触发存储过程执行就行了,然后本机就可以不用管了。即使session关闭,应该也不影响服务器执行存储过程! 这不可能的触发器也是在当前会话和事务上执行倒是可以试试通过job,根据自己的需要定时,让服务器自动执行这个过程这样的话你只需要指定运行时间和时间间隔,而不需要在客户端打开会话如果toad新开个页面都这么不方便的话,你试试pl/sql dev好了但是新开个toad机器都会卡死,你的硬件配置实在是很低啊.. Oracle 自动创建字段问题,100求高人解答 给定一个dmp文件,不借助pl/sql工具,想知道里面的表结构,不知道怎么处理? oracle 中当SET 条件包含二进制数据时 linux 下 oracle问题 如何复制一个表? 弱弱一问 ORACLE下有比较字符串的函数吗? 求oracle7.2的补丁,解决千年虫问题,100分酬谢! 高分求救!!oracle的安装问题(在线等) oracle11g Grid Infrastructure 集群软件安装问题 sql文优化 老问题:Oracle行转列(字符串拆分)
执行过程中如果想进行其他操作,新建一个session
设置一个toad参数,允许多线程执行就ok了.
参数是:
oracle->transactions->execute queries in threads
pl/sql dev中,新建一个页面窗口,就新增一个session
toad里应该有类似的功能
服务器端也会停止执行过程
而且你关掉的话,你想服务器如何将结果返回给你?
如果是windows 能不能写一个bat呢? 个人感觉也应该可以的吧。
sqlplus user/password@tnsname
execute myprocedure
commit;
只要你不关闭这个dos窗口就行了
/oradata1/aiobstest/zhengzw/shellsql>% cat test.sh
sqlplus obstest/obstest@aiobs7 << !
spool test
select * from tab;
spool off
!写完后,chmod u+x test.sh,给予执行权限,你执行的时候,在命令行输入:test.sh & 就可以了,尽管屏幕在闪动,你退出就可以了,因为它放在后台执行了,但是如果你输入test.sh,然后回车,是没有赚到后台执行的,注意
同意vc的。服务器是在后端执行的,你这里的停住了,是客户端需要等待服务器端的返回而已。不想等待,ctrl+c即可。
触发器也是在当前会话和事务上执行
倒是可以试试通过job,根据自己的需要定时,让服务器自动执行这个过程
这样的话你只需要指定运行时间和时间间隔,而不需要在客户端打开会话如果toad新开个页面都这么不方便的话,你试试pl/sql dev好了
但是新开个toad机器都会卡死,你的硬件配置实在是很低啊..