powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Написание Триггера
13 сообщений из 13, страница 1 из 1
Написание Триггера
    #39617412
Hitter89rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите с решением задачи.Нужно написать Триггер который по функции будет проверять зарплату и менять её.Если проверяемая заработная плата меньше нижней границы, то вставляемое в таблицу значение будет равное нижней границе и, если проверяемая заработная плата больше верхней границы, то вставляемое в таблицу значение будет равное верхней границе.
Вот сама функция

CREATE OR REPLACE FUNCTION S_SALARY (SALARY NUMBER,p_job_id VARCHAR2) RETURN BOOLEAN as
v_min_salary number;
v_max_salary number;
verify BOOLEAN;
begin
select min_salary,max_salary into v_min_salary,v_max_salary from hr.jobs where job_id = p_job_id ;
if SALARY BETWEEN v_min_salary and v_max_salary then
verify :=TRUE;
ELSE
verify :=false;
end if;
RETURN verify;
end S_SALARY;

В качестве таблиц используются Sample Schemas
Зарплата хранится в EMPLOYEES
Минимальная зарплата и максимальная для должности в JOBS
...
Рейтинг: 0 / 0
Написание Триггера
    #39617431
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rus,
используйте кнопочку SRC для оформления исходников
Hitter89rus
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE FUNCTION S_SALARY (SALARY NUMBER,p_job_id VARCHAR2) RETURN BOOLEAN as
v_min_salary number;
v_max_salary number;
verify BOOLEAN;
begin
select min_salary,max_salary into v_min_salary,v_max_salary from hr.jobs where job_id = p_job_id ;    
if SALARY BETWEEN v_min_salary and v_max_salary then
verify :=TRUE;
ELSE
verify :=false;
end if;
RETURN verify;
end S_SALARY;
...
Рейтинг: 0 / 0
Написание Триггера
    #39617442
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
Наличие у вас Sample Schemas не означает, что они есть у всех и каждого...test-case увеличивает шансы на ответ.
...
Рейтинг: 0 / 0
Написание Триггера
    #39617454
Фотография шК0ДЕР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rusЗдравствуйте, помогите с решением задачи.Нужно написать Триггер который по функции будет проверять зарплату и менять её.Ну и как пытался решить эту задачу? Показывай
...
Рейтинг: 0 / 0
Написание Триггера
    #39617488
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rus,

Если функция вернула false, то какое из условий нарушено?
...
Рейтинг: 0 / 0
Написание Триггера
    #39617497
Hitter89rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
envHitter89rus,

Если функция вернула false, то какое из условий нарушено?

Если функция возвращает false значит зарплата сотрудника (SALARY) не попадает в диапазон от минимальной зарплаты для должности (MIN_SALARY) до максимальной (MAX_SALARY)
...
Рейтинг: 0 / 0
Написание Триггера
    #39617502
Hitter89rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шК0ДЕРHitter89rusЗдравствуйте, помогите с решением задачи.Нужно написать Триггер который по функции будет проверять зарплату и менять её.Ну и как пытался решить эту задачу? Показывай

К сожалению никак, у меня даже нету идей.Я второй день как знаком со всем этим.
...
Рейтинг: 0 / 0
Написание Триггера
    #39617506
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rusenvHitter89rus,

Если функция вернула false, то какое из условий нарушено?

Если функция возвращает false значит зарплата сотрудника (SALARY) не попадает в диапазон от минимальной зарплаты для должности (MIN_SALARY) до максимальной (MAX_SALARY)
а где это спрашивают в твоей задаче ?
...
Рейтинг: 0 / 0
Написание Триггера
    #39617509
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
envHitter89rus,

Если функция вернула false, то какое из условий нарушено?

тогда
...
select min_salary,max_salary into v_min_salary,v_max_salary from hr.jobs where job_id = :new.job_id;
if :new.SALARY < v_min_salary then
:new.salary :=v_min_salary;
ELSE
:new.salary :=v_max_salary;
end if;
...



....
stax
...
Рейтинг: 0 / 0
Написание Триггера
    #39617527
Hitter89rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123ййHitter89rusпропущено...


Если функция возвращает false значит зарплата сотрудника (SALARY) не попадает в диапазон от минимальной зарплаты для должности (MIN_SALARY) до максимальной (MAX_SALARY)
а где это спрашивают в твоей задаче ?

"Нужно написать Триггер который по функции будет проверять зарплату и менять её" Тут же сказано что ПО функции.Если нужно подробности то написание этой самой функции было моей предыдущей задачей.
...
Рейтинг: 0 / 0
Написание Триггера
    #39617539
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rus.Если нужно подробности то написание этой самой функции
можно спросить у Oracle
Код: plsql
1.
GREATEST(LEAST(....))
...
Рейтинг: 0 / 0
Написание Триггера
    #39617565
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hitter89rusнаписание этой самой функции было моей предыдущей задачей.
тогда напрашивается возвращать из фукции либо true, если зарплата попадает в диапазон, либо "вставляемое в таблицу значение" ... и соответственно либо ничего в триггере не делать, либо вставлять значение.
...
Рейтинг: 0 / 0
Написание Триггера
    #39617667
Hitter89rus[
К сожалению никак, у меня даже нету идей.Я второй день как знаком со всем этим.
Потрать еще два дня и станешь уже готовым специалистом, может, даже сможешь сформулировать постановку проблемы.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Написание Триггера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]