У меня есть таблица x с 400 столбцами, такими как xpk, x1, x2..x399 (где xpk является основным ключом таблицы). Основываясь на требовании, мне нужно создать отдельную таблицу для каждого столбца, кроме xpk.Как создать таблицы с использованием имен столбцов существующей таблицы?
Чтобы сделать это традиционно, мне пришлось бы написать 400 заявлений о создании. Можете ли вы помочь мне достичь этого, используя процедуру или динамический sql?
Я попробовал что-то на столе сотрудников, чтобы дать вам представление. Но даже в этом я получаю ошибки.
set serveroutput on;
DECLARE CURSOR COL_CUR IS
select column_name from all_tab_columns where table_name = 'EMPLOYEES';
NAMES user_tables.table_name%TYPE;
SQL_STRING VARCHAR2(300);
BEGIN
OPEN COL_CUR;
LOOP
FETCH COL_CUR INTO NAMES;
EXIT WHEN COL_CUR%NOTFOUND;
SQL_STRING := 'CREATE TABLE :T_NAMES AS SELECT employee_id, :C_NAMES FROM EMPLOYEES';
EXECUTE IMMEDIATE SQL_STRING USING NAMES,NAMES;
END LOOP;
CLOSE COL_CUR;
END;
Требуемая мощность:
First_name в виде таблицы, имеющей следующие столбцы:
Employee_id First_name
1234 Ashish
Точно так же я хочу, таблицы для других столбцов.