Как найти первую строку в таблице заданной длины и минимальную лексикографически?
Не совсем понимаю, как это должно выглядеть. Пробую так:
function res2(name_length in integer) return varchar2 as
resul varhcar2;
begin
select name into resul
from planets
where length(name)=name_length and name=min(name);
return resul;
end res2;
Но сталкиваюсь с ошибкой:
Error report -
ORA-06550: Строка 2, столбец 85:
PL/SQL: ORA-00934: групповая функция здесь не разрешена
ORA-06550: Строка 2, столбец 9:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
Это надо сделать так:
create or replace function res2 (name_length in integer) return varchar2 as
pragma udf;
res planets.name%type;
begin
select name into res
from planets
where length (name)=name_length
order by name desc fetch first row only;
return res;
end res2;
/