Всем привет!
Есть функция на PLSQL где я в зависимости от параметра должен вести поиск по определенным столбцам.
Допустим, если academ_level_id = 1 , тогда я должен вести поиск по столбцу COLUMN1
Экспериментальная таблица примерно вот такая
my_settingse_rule(ID , COLUMN1 ,COLUMN2 )
Но на самом деле таких COLUMN штук 10! плюс нужно сочетать и с другими условиями
CREATE OR REPLACE FUNCTION get_setting_min( id number , academ_level_id IN academic_level.academiclevelid%type)
RETURN number
IS
l_min number;
a_to_use VARCHAR2(80);
BEGIN
CASE academ_level_id
WHEN 1 THEN a_to_use := 'COLUMN1';
WHEN 2 THEN a_to_use := 'COLUMN2';
ELSE a_to_use := 0;
END CASE;
select rsre.TERM_MIN
into l_min
from my_settingse_rule rsre
where rsre.a_to_use = 1 and rsre.id = id;
return l_min;
END ;
where
rsre.a_to_use = 1 and rsre.id = id;
Код не работает, выдает ошибку.
Error(45,39): PL/SQL: ORA-00904: "RSRE"."A_TO_USE": invalid identifier