Здравствуйте, мне нужна помощь по поводу лучшего варианта решения Switch на Oracle. Итак, у меня есть функция
FUNCTION GETSTAT(i_json_stats clob)
RETURN CRESPONSE AS
BEGIN
IF JSON_GET_STAT IS NOT NULL THEN
FOR i IN 1..JSON_GET_STAT.count LOOP
V_FUNCTION := json_ext.get_string(json(JSON_GET_STAT.get(i)), 'CLE');
O_RETURN_RESPONSE := new CRESPONSE;
THE FIRST / THE SECOND SOLUTION BELOW
END LOOP;
END IF;
У меня есть два решения, первое - это использование switch и case Но я хочу динамически вызывать функцию, если нет, я должен сделать 50 case ..
ПЕРВОЕ РЕШЕНИЕ:
case V_FUNCTION
when 'COUVERTURE_MAGASIN' then v_json_collect.put(V_FUNCTION,COUVERTURE_MAGASIN(i_json_stats));
when 'COUVERTURE_VOLUMES' then v_json_collect.put(V_FUNCTION,COUVERTURE_VOLUMES(i_json_stats));
end case;
ВТОРОЕ РЕШЕНИЕ: но я не знаю, как вставить его в мою функцию GETSTAT
execute immediate' begin v_json_collect.put(V_FUNCTION,'||V_FUNCTION||'(i_json_stats)); end';
Спасибо за помощь