Deterministic функции в PL/SQL

Поділитися
Вставка
  • Опубліковано 29 вер 2024

КОМЕНТАРІ • 7

  • @tomozi1
    @tomozi1 Рік тому

    Спасибо, полезно и информативно

  • @maksimkuznetsov2132
    @maksimkuznetsov2132 3 роки тому +1

    Если надо в PL/SQL использовать, то делаем какой-нибудь select into или for r in (select...)

    • @OracleDBD
      @OracleDBD  3 роки тому +1

      Максим, это да, согласен. Формально SQL-машина выполняет запрос, поэтому мы получаем все плюшки. С другой стороны, пример как раз был именно про PL/SQL- и итерационный вызов. Можно было бы, конечно, в видос добавить, как workaround ;-)

  • @ExcelStore
    @ExcelStore 3 роки тому

    Отличный информативный урок. Спасибо

  • @azerich
    @azerich 3 роки тому +1

    Есть таблица Человек(ИД, Фамилия, Имя); Является ли функция, которая возвращает Человек.Имя || ' ' || Человек.Фамилия по Человек.ИД детерминированной? Т.е. Полное_Имя := Верни_Полное_Имя_По_ИД(Человек.ИД); P.S.: Фактически же функция не вносит изменения в среду, а только делает выборку из таблицы и конкатенирует результат.

    • @OracleDBD
      @OracleDBD  3 роки тому +1

      Если внутри этой функции выполняется SELECT к таблице, то она не является детерминированной. Она зависит от внешнего источника данных.
      Если мы в функцию передали Имя и Фамилию. Внутри функции сконкатенировали и вернули результат - она будет детерменированной, т.к. она не выполняет внутри себя select.

    • @azerich
      @azerich 3 роки тому

      @@OracleDBD , теперь понятно. Спасибо большое!