Присвойте значение полю rowtype, где `field name` - строка
Я хочу присвоить значение полю типа строки, но я не знаю, как это сделать.
Предположим, что у меня есть столX в моей базе данных.
Предположим также, что у меня есть следующие переменные
a
( X%ROWTYPE
), представляющий строку таблицы Xb
( VARCHAR2
), содержащий имя столбца таблицы Xc
( VARCHAR2
), содержащий то, что я хочу хранить внутри a.bЧто я хочу сделать : что-то вродеa.b := c
.
Я придумал что-то вроде этого:
EXECUTE IMMEDIATE 'SELECT '|| c || ' INTO a.' || b || ' FROM DUAL';
Видимо, это не правильный путь. Я получаюORA-0095: отсутствует ключевое слово ошибка.
Кто-нибудь может мне с этим помочь ?
Вот полный код:
DECLARE
tRow MyTable%ROWTYPE;
col_name VARCHAR(10) := 'Length';
nValue NUMBER(12,4) := 0.001;
dynamic_request VARCHAR(300);
BEGIN
dynamic_request := 'SELECT '|| nValue || ' INTO tRow.' || col_name || ' FROM DUAL';
EXECUTE IMMEDIATE dynamic_request;
END;