Если надо в PL/SQL использовать, то делаем какой-нибудь select into или for r in (select...)
@OracleDBD
3 жыл бұрын
Максим, это да, согласен. Формально SQL-машина выполняет запрос, поэтому мы получаем все плюшки. С другой стороны, пример как раз был именно про PL/SQL- и итерационный вызов. Можно было бы, конечно, в видос добавить, как workaround ;-)
@azerich
3 жыл бұрын
Есть таблица Человек(ИД, Фамилия, Имя); Является ли функция, которая возвращает Человек.Имя || ' ' || Человек.Фамилия по Человек.ИД детерминированной? Т.е. Полное_Имя := Верни_Полное_Имя_По_ИД(Человек.ИД); P.S.: Фактически же функция не вносит изменения в среду, а только делает выборку из таблицы и конкатенирует результат.
@OracleDBD
3 жыл бұрын
Если внутри этой функции выполняется SELECT к таблице, то она не является детерминированной. Она зависит от внешнего источника данных. Если мы в функцию передали Имя и Фамилию. Внутри функции сконкатенировали и вернули результат - она будет детерменированной, т.к. она не выполняет внутри себя select.
Пікірлер: 7