В оракуле мы можем создать таблицу с именем столбца из другого имени значения столбца таблицы? - PullRequest
0 голосов
/ 20 февраля 2019

Есть ли способ в oracle pl / sql создать новую таблицу с именем столбца, полученным из значения данных столбца другой таблицы.

Например:

TableA

column1
-----------
A
B
C
D

изэта новая таблица выглядит как

TABLE2

A B C D
- - - -

Где A, B, C, D действуют как имя столбца для Table2

Заранее спасибо.

1 Ответ

0 голосов
/ 20 февраля 2019

Да, используйте PL / SQL для построения динамического запроса, а затем используйте EXECUTE IMMEDIATE:

Oracle Setup :

CREATE TABLE TableA ( column1 ) AS
SELECT 'A' FROM DUAL UNION ALL
SELECT 'B' FROM DUAL UNION ALL
SELECT 'C' FROM DUAL UNION ALL
SELECT 'D' FROM DUAL;

PL /SQL :

DECLARE
  p_sql VARCHAR2(4000);
BEGIN
  SELECT 'CREATE TABLE TableB ('
         || LISTAGG(
              column1 || ' NUMBER',
              ','
            ) WITHIN GROUP ( ORDER BY ROWNUM )
         || ')'
  INTO   p_sql
  FROM   TableA;

  EXECUTE IMMEDIATE p_sql;
END;
/

Вывод :

SELECT * FROM TableB;
 A |  B |  C |  D
-: | -: | -: | -:

db <> скрипка здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...