У меня есть таблица с более чем 160 столбцами, и мне нужно работать с каждым столбцом в PL/SQL-процедуре. Я делаю запись целого ряда из таблицы, как это:Вызов столбцов записи по его индексу, а не по имени
DECLARE
l_employee rec_employees%ROWTYPE;
COLUMN_AND_VALUE VARCHAR2(200);
BEGIN
SELECT *
INTO l_employee
FROM employees
WHERE employee_id = 100;
и теперь я хочу работать со всеми столбцами этой записи с FOR LOOP, но я не знаю, как, потому что я должен обратиться к каждый столбец записи по имени столбца, например l_employee.id, l_employee.salary, .... можно ли обращаться к ним так, как l_employee [INDEX_OF_COLUMN], а также получить имя столбца, с которым я работаю? Вот пример, который я хочу сделать с записью:
FOR INDEX_OF_COLUMN IN 1 .. 167 LOOP
COLUMN_AND_VALUE := l_employee[INDEX_OF_COLUMN].COLUMN_NAME || ': ' || l_employee[INDEX_OF_COLUMN].VALUE_OF_COLUMN
-- I know those commands don't work, but I need something like that
END LOOP;
Или здесь лучший способ сделать это без использования записи?
Большое спасибо, и мне очень жаль мой плохой английский. Надеюсь, вы поняли мой вопрос :)
Не могли бы вы помочь нам разобраться в этом? Вы действительно собираетесь обрабатывать все 167 столбцов? Если да, то во время обработки вам обязательно нужно явно указать имя столбца. Как я думаю, обработка данных каждого столбца будет отличаться от другой. –
Однако вы можете получить все имена столбцов для таблицы, используя «CURSOR C2», выберите COLUMN_NAME из «ALL_TAB_COLUMNS», где TABLE_NAME = «СОТРУДНИКИ»; –