Oracle
 sql >> база данни >  >> RDS >> Oracle

Можем ли динамично да определим степента на паралелизъм?

Вивек,

Можете да използвате динамичен SQL, за да изградите вашия оператор INSERT в рамките на PL/SQL функция или процедура. По този начин бихте могли да използвате променливата "degree", която вече сте извлекли.

Нещо като:

DECLARE
   degree varchar2(1); 
BEGIN 
   select value-2 
     INTO degree 
     from v$parameter
    where name='cpu_count';              

   EXECUTE IMMEDIATE('INSERT /*+ APPEND PARALLEL (tst, '||degree||') */ '||
                     '  INTO test_table tst ( '||
                     '       **************  '||
                     '       **************  '||
                     '       **************  '||
                     '  ) '||
                     'SELECT /*+  PARALLEL (a, '||degree||') */ '||
                     '       DISTINCT '||
                     '       ************** '||
                     '       ************** '||
                     '       ************** '||
                     '  FROM src_table a');
END; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да предоставим привилегия на потребител за конкретна схема?

  2. Как да вмъкна времева марка в Oracle?

  3. Съхранена функция на Oracle - подайте името на таблицата като параметър

  4. просто архивиране на oracle rman

  5. Липсващ артефакт com.oracle:ojdbc6:jar:11.2.0.3