sql >> Database teknologi >  >> RDS >> Oracle

Kan vi specificere graden af ​​parallelisme dynamisk?

Vivek,

Du kan bruge dynamisk SQL til at opbygge din INSERT-sætning i en PL/SQL-funktion eller -procedure. På den måde kan du bruge variablen "grad", som du allerede har hentet.

Noget som:

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. Oprettelse af et tablespace i postgresql

  2. Vis dato/klokkeslæt på webstedet baseret på brugerens computertid i andet land

  3. Sådan fungerer SQL Server DIFFERENCE()-funktionen

  4. Sådan sammenkædes variabler i SQL-strenge