非常感谢帮助.谢谢=)
解决方法 这是一个有趣的问题!我从未意识到这种需要.可能是因为DBA_ParaLLEL_EXECUTE被设计并通常用于影响其大部分的大型表(mn行)上的DML *** 作.因此,对我来说,每个块的受影响行数(sql $ROWCOUNT)并不重要.
我有自己的验证脚本,最终验证任务是否达到了它的总体目的.
However,this can perhaps be introduced in future version of oracle.
As far as I am aware (upto 12c) none of DBA_ParaLLEL_EXECUTE vIEws gives this
additional info
话虽如此,您始终可以通过run_task编写和调用自定义过程.在MY_PROCEDURE中进行DML *** 作后,您可以在日志文件或表中编写sql $ROWCOUNT.
DECLARE l_task VARCHAR2(30) := 'parallel_processing'; l_sql_stmt VARCHAR2(32767); l_try NUMBER; l_status NUMBER;BEGIN DBMS_ParaLLEL_EXECUTE.create_task (task_name => l_task); DBMS_ParaLLEL_EXECUTE.create_chunks_by_rowID(task_name => l_task,table_owner => 'SCHEMAname',table_name => 'T_PROCESS',by_row => TRUE,chunk_size => 10000); l_sql_stmt := 'begin MY_PROCEDURE( :start_ID,:end_ID ); end;'; DBMS_ParaLLEL_EXECUTE.run_task(task_name => l_task,sql_stmt => l_sql_stmt,language_flag => DBMS_sql.NATIVE,parallel_level => 10); -- If there is error,RESUME it for at most 2 times. l_try := 0; l_status := DBMS_ParaLLEL_EXECUTE.task_status(l_task); WHILE(l_try < 2 and l_status != DBMS_ParaLLEL_EXECUTE.FINISHED) Loop l_try := l_try + 1; DBMS_ParaLLEL_EXECUTE.resume_task(l_task); l_status := DBMS_ParaLLEL_EXECUTE.task_status(l_task); END LOOP; DBMS_ParaLLEL_EXECUTE.drop_task(l_task);END;/总结
以上是内存溢出为你收集整理的Oracle SQL%ROWCOUNT等效于DBMS_PARALLEL_EXECUTE全部内容,希望文章能够帮你解决Oracle SQL%ROWCOUNT等效于DBMS_PARALLEL_EXECUTE所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)