小编Swa*_*han的帖子

并行执行 Oracle For 循环

我正在循环遍历表列表并更新每个表中的列列表。是否可以并行执行循环,即一次更新多个表。

  FOR Table_rec IN Table_list_cur
  LOOP
     --Check if the table is partitioned
     IF Check_if_partitioned (Table_rec.Table_name, Table_rec.Owner)
     THEN
        --If Yes, loop through each parition
        EXECUTE IMMEDIATE
              'Select partition_name from USER_TAB_PARTITIONS where table_name = '''
           || Table_rec.Table_name
           || ''' and owner = '''
           || Table_rec.Owner
           || ''''
           BULK COLLECT INTO L_part;

        FOR I IN L_part.FIRST .. L_part.LAST
        LOOP
           --Update each parition
           DBMS_OUTPUT.Put_line ('V_sql_stmt' || V_sql_stmt);
           V_sql_stmt :=
                 'UPDATE /*+ PARALLEL(upd_tbl,4) */ '
              || Table_rec.Table_name
              || ' PARTITION ('
              || L_part (I)
              || …
Run Code Online (Sandbox Code Playgroud)

oracle parallel-processing plsql for-loop

1
推荐指数
1
解决办法
4909
查看次数

标签 统计

for-loop ×1

oracle ×1

parallel-processing ×1

plsql ×1