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

Динамична опорна точка в oracle sql - Процедура

Ако имате таблица, в която искате да вмъквате централните резултати всеки път, когато извикате Stored Proc, можете да използвате това:

CREATE OR REPLACE PROCEDURE dynamic_pivot
AS
  v_sql LONG       := NULL;
  v_statement LONG := NULL;
BEGIN
  SELECT DISTINCT LISTAGG(''''
    || myLetter
    || ''' AS '
    || myLetter,',') WITHIN GROUP (
  ORDER BY myLetter) AS temp_in_statement
  INTO v_statement
  FROM
    (SELECT DISTINCT myLetter FROM test_data
    );
  v_sql := 'insert into pivot_table    
      select * from (SELECT myNumber, myLetter, myValue FROM test_data    
      )    
      PIVOT    
      (      
      SUM(myValue) AS val FOR myLetter IN (' || v_statement || ')    
      )';
  EXECUTE immediate v_sql;
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. MONTHS_BETWEEN() Функция в Oracle

  2. Въведение в Oracle RMAN

  3. Грешка при свързване с локален хост на Java Oracle (ORA-12505)

  4. Как да създадете PL/SQL съхранени процедури без параметри в базата данни на Oracle

  5. Oracle SQL Developer:Неуспешен тест – Неуспешен тест:Мрежовият адаптер не може да установи връзката?