从另一个模式执行DBMS_PARALLEL_EXECUTE

时间:2018-03-07 08:41:43

标签: sql database oracle plsql parallel-processing

我编写了一个脚本来使用 DBMS_PARALLEL_EXECUTE.RUN_TASK 更新数百万条记录。

我还考虑过Schemaowner传递给session和CREATE_CHUNKS_BY_ROWID table_owner。

ACCEPT Schemaowner CHAR DEFAULT 'MYUSER'
.
.
.
ALTER SESSION SET current_schema = &Schemaowner.;
.
.
.
DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_ROWID(task_name => c_task_name, 
table_owner => '&&Schemaowner.', 
table_name => 'TMP_DUPLICATED_ABC', 
by_row => TRUE, 
chunk_size => &&p_chunk_size.);
.
.
.

我的问题/问题:

如果我使用MYUSER运行脚本,这也是默认架构,并且该架构具有所有表格 - >没问题✔

如果我使用不同的模式运行它,例如:SYS或APPDEPLOY(更复杂的用户,更多权限等),RUN_TASK sql_stmt(更新,插入,删除)中的DML函数执行 NOTHING

在RUN_TASK之前我也做了一些插入和提取,这些在两种情况下都很有效。

我没有找到有关此问题的任何文档。是否有声明DBMS_PARALLEL_EXECUTE只能使用一个模式?

在执行期间,没有引发错误,没有语法问题。

0 个答案:

没有答案