2015-07-03 3 views
1

У меня есть PL/SQL function FN_CALC(emp_sal), который возвращает значение. Функция PL/SQL работает правильно. Используя возвращаемое значение функции, мне нужно обновить мой запрос оракула (т. Е. Когда функция возвращает 1000 одно условие другое другое условие).Вызывающая функция в запросе оракула

Основываясь на выходе функции, мне нужно обновить запрос. Ниже мой запрос.

update EMPLOYEE_MASTER 
set EMP_GRADE = case 
    when EMP_GRADE < (FN_CALC(emp_sal)) 
    then EMP_GRADE ='A' 
    end; 

Просьба помочь solve.That в зависимости от мощности PL/SQL вызывается функция udpate оператор должен работать.

С уважением Пракаша

+0

Вы можете вызвать функцию из SQL запроса следующим образом: выберите function_name (пары) от двойного; Вы можете выполнить заявление об обновлении, которое я опубликовал в качестве ответа, и принять его и принять его, если это работает нормально, в противном случае опубликуйте результат/ошибку, чтобы его можно было предложить следующие шаги. – JavaHopper

+0

Спасибо ... Это очень помогло мне –

+0

upvote pls, будучи жадным для репутации :) – JavaHopper

ответ

1

Попробуйте

UPDATE employee_master 
    SET emp_grade = (
    CASE 
     WHEN (emp_grade < (SELECT FN_CALC(emp_sal) FROM DUAL)) 
     THEN 'A' 
     ELSE emp_grade 
    END); 
Смежные вопросы