暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ALTER会话启用并行DML

askTom 2017-11-04
289

问题描述

嗨,

我遇到了下面的代码spinet:

声明
..
..
开始
..
..
立即执行 'alter SESSION启用并行dml';
从TABLE_TEST中删除/* PARALLEL(TABLE_TEST,4) */其中ID IN (从TABLE_2中选择ID);

结束;

由于在不同的会话中执行即时进程DDL,DML所做的更改会在这里使用并行4进行吗??
如果不能,请协助如何实现它。


专家解答

“因为在不同的会话中执行即时进程DDL”

你凭什么这么想?立即执行仍然适用于 * 当前 * 会话。例如:

SQL> create table t
  2  as select rownum x
  3  from all_Objects
  4  where rownum <= 10;

Table created.

SQL>
SQL> set serverout on
SQL>
SQL> declare
  2    c int;
  3  begin
  4    select count(*) into c from t;
  5    dbms_output.put_line(c);
  6
  7    execute immediate 'delete from t';
  8
  9    select count(*) into c from t;
 10    dbms_output.put_line(c);
 11  end;
 12  /
10
0

PL/SQL procedure successfully completed.
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论