powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / WHERE не фильтрует по аргументу функции, но фильтрует просто по строке
2 сообщений из 2, страница 1 из 1
WHERE не фильтрует по аргументу функции, но фильтрует просто по строке
    #39716706
JohnVein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Скажите пожалуйста почему в данном куске кода

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
create or replace function check_chair_work (first_name in varchar2, second_name in varchar2, 
patronymic in varchar2, faculty_name in chairs.faculty_name%type, phone_number out employees.mobile_phone%type)
return boolean 
is 
	result boolean := false;
	--f_code chairs.faculty_code%type;
	f_code integer;
	e_code employees.employee_code%type;

	es employees%rowtype;

	cursor contracts_per_faculty(f_code in number) return contracts%rowtype
	is
		select * from contracts where faculty_code = f_code;
		
	cpf contracts_per_faculty%rowtype;
begin
	dbms_output.put_line(faculty_name);

	select faculty_code 
	into f_code 
	from chairs 
	where trim(chairs.faculty_name) = faculty_name offset 0 rows fetch next 1 rows only;


Если на место faculty_name подставить просто строку ('IEF') то фильтрация происходит все в порядке, но если просто использовать аргумент функции то фильтрации нету, и возвращаются все строки?
...
Рейтинг: 0 / 0
WHERE не фильтрует по аргументу функции, но фильтрует просто по строке
    #39716885
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1=1, 2=2, а faculty_name = faculty_name.

В запросе нужно явно указать, что справа от = параметр функции, а не столбец таблицы (по умолчанию):
Код: sql
1.
where trim(chairs.faculty_name) = check_chair_work.faculty_name ...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / WHERE не фильтрует по аргументу функции, но фильтрует просто по строке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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