Введение

Функции — это модули кода, которые являются «автономными» и выполняют одну задачу. Функции часто «принимают» данные, обрабатывают их и «возвращают» результат. После того как вы написали функцию, вы можете использовать ее неоднократно. Другие функции могут «вызывать» функции изнутри себя.

Преимущества написания функции:

  1. Они позволяют нам думать о нашей программе как о серии шагов. (Каждый подэтап можно рассматривать как отдельную функцию.) Если программа кажется слишком сложной, просто разбейте ее на подэтапы.)
  2. Они позволяют нам повторно использовать код, а не переписывать его.
  3. Мы можем содержать наше пространство имен переменных в чистоте, используя функции (локальные переменные «живут» только до тех пор, пока существует функция). Другими словами, и функция 1, и функция 2 могут использовать I в качестве переменной, не вызывая путаницы. Каждая переменная I существует только во время выполнения компьютером указанной функции.
  4. Мы можем тестировать крошечные части нашего программного обеспечения отдельно от остального, используя функции. Это особенно верно для интерпретируемых языков, таких как Matlab, но также может быть полезно в C, Java, ActionScript и других языках сценариев.

 

Что такое функции Oracle

Функции — очень мощная функция Oracle. Их можно использовать для многих вещей, в том числе:

  • Выполнение расчетов по данным
  • Изменить отдельные элементы данных
  • Управление выводом для групп строк
  • Формат даты и числа для отображения
  • Преобразование типов данных столбца

Функции SQL время от времени принимают параметры, но всегда возвращают значение.

 

Типы функций Oracle

Есть два типа функций

1) Однорядные функции

Синтаксис:

Имя функции (arg1,agr2);

 

А. Функции персонажа: Он принимает ввод символов и возвращает как символьные, так и числовые значения.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

CONCAT('Привет', 'Мир')

Вывод:

HelloWorld

 

B. Числовые функции: Принимать числовые данные и возвращать числовые результаты.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

КРУГЛЫЙ(45.926, 2)

Вывод:

45.93

 

C. Функции даты: Используйте тип данных DATE для выполнения операций. (За исключением функции МЕСЯЦ МЕЖДУ, которая выдает число, все функции даты возвращают значение типа данных ДАТА.)

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

MONTHS_BETWEEN

('01-СЕНТЯБРЬ-95','11-ЯНВ-94');

Вывод:

19.6774194

 

Д. Общие функции:

и) НВЛ:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ВЫБЕРИТЕ NVL (100,200 XNUMX) ИЗ двойного;

Вывод:

100 (Поскольку первый аргумент не нулевой)

 

ii) НВЛ2:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ВЫБЕРИТЕ NVL2 (NULL, 1, 2) ОТ двойного;

Вывод:

2 (поскольку первый аргумент равен нулю)

 

iii) НУЛИ:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ВЫБЕРИТЕ NULLIF (100,100 XNUMX) ИЗ двойного;

Вывод:

NULL (приведенный выше оператор возвращает нулевое значение, поскольку первый аргумент равен второму)

 

iv) ОБЪЕДИНЕНИЕ:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

SELECT COALESCE(NULL, NULL, NULL, 'Oracle', NULL, 'Example.com');

Вывод:

Oracle

 

v) СЛУЧАЙ:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

SELECT 'Идентификатор задания для '||UPPER(last_name)||' '||LOWER(job_id) КАК "ДАННЫЕ О СОТРУДНИКАХ" ОТ сотрудников;

Вывод:

Идентификатор работы для ДЭВИЕСа: st_clerk.

 

vi) РАСШИФРОВАТЬ:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ВЫБЕРИТЕ employee_id, зарплата

ОТ сотрудников

ORDER BY DECODE('S', 'F',first_name, 'L',last_name,'S',salary);

 

2) Многострочные функции

При работе с предложением group by используется многострочная функция SQL для получения данных по набору строк.

Типы многострочных функций

 

А. Максимум (МАКС.)

Из заданных данных возвращает максимальное значение.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Выберите макс. (Зарплата)

от сотрудников;

Вывод:

10,0000

 

B. Минимум (МИН)

Из заданных данных возвращает минимальное значение

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Выберите мин. (зарплата)

от сотрудников;

Вывод:

1000

 

C. Среднее (AVG)

Он вычисляет среднее значение предоставленного выражения.

Выберите avg (sal) из emp;

Вывод:

2250.725

 

Д. СУММА

Должна быть возвращена сумма поля «Количество» в таблице «Сведения о заказе».

ВЫБЕРИТЕ СУММУ (количество) КАК TotalItemsOrdered FROM OrderDetails;

Вывод:

ВсегоItemsOrdered
12745

 

Е. СЧЕТ

Подсчитывает элементы из таблицы/столбца

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Выберите количество (empno) от сотрудника;

Вывод:

100 (учитывайте, что в таблице сотрудников 100 сотрудников)

 

Как создавать функции в Oracle

Вы можете писать свои собственные функции в Oracle точно так же, как и в других языках программирования.

Синтаксис:

CREATE [OR REPLACE] FUNCTION имя_функции [(параметр [,параметр]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN исполняемый_раздел [EXCEPTION exception_section] END [имя_функции];

 

Пояснение ко всем параметрам:

IN – процедура или функция может ссылаться на параметр. Процедура или функция не может перезаписать значение параметра.

OUT – на параметр нельзя ссылаться в процедуре или функции, но значение параметра может быть перезаписано.

IN OUT – процедура или функция может ссылаться на параметр, и значение параметра может быть перезаписано процессом или функцией.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

CREATE OR REPLACE Функция FindCourse ( name_in IN varchar2 ) RETURN number IS cnumber number; курсор c1 - ВЫБЕРИТЕ номер_курса ИЗ курсов_таблицы, ГДЕ имя_курса = имя_в; НАЧАТЬ открыть c1; получить c1 в число; если c1%notfound, то cnumber := 9999; закончить, если; закрыть с1; ВОЗВРАТ номер; ИСКЛЮЧЕНИЕ, КОГДА ДРУГИЕ ТОГДА raise_application_error(-20001, 'Обнаружена ошибка - '||SQLCODE||' -ERROR- '||SQLERRM); КОНЕЦ;

 

FindCourse — это имя этой функции. Он принимает только один параметр, имя и возвращает число. Если совпадение найдено на основе названия курса, метод вернет номер курса. В противном случае возвращается 99999.

 

Рекурсивная функция Oracle

Рекурсивная ФУНКЦИЯ в PL/SQL — это функция, которая либо вызывает сама себя, либо является частью возможного цикла вызовов функций. Как указано в определении, существует два вида рекурсивных функций. Рекурсивный вызов происходит, когда подпрограмма вызывает саму себя, и этот процесс известен как рекурсия.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

создать или заменить функцию mul (n number) вернуть номер как begin IF n <= 1 THEN dbms_output.put_line(to_char (n) ||' x 3 = '|| to_CHAR (3*n)); ВОЗВРАТ 1; ИНАЧЕ dbms_output.put_line(to_char (n) ||' x 3 = '|| to_CHAR (3*n)); вернуть мул(n-1); закончить, если; конец;

 

Вывод:

выберите mul(10) из двойного;

10 х 3 = 30
9 х 3 = 27
8 х 3 = 24
7 х 3 = 21
6 х 3 = 18
5 х 3 = 15
4 х 3 = 12
3 х 3 = 9
2 х 3 = 6
1 х 3 = 3

 

Как удалить функцию в Oracle

Возможно, вам придется удалить вашу функцию из базы данных после того, как вы создали ее в Oracle.

Синтаксис:

DROP FUNCTION имя_функции;

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

ФУНКЦИЯ УДАЛЕНИЯ FindCourse;

Автор


Комментарии

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.