Пакеты с переменными, процедурами и функциями в PL/SQL

минута на чтение

Пакеты PL/SQL являются объектами базы данных (схемы), которые объединяют в себе связанные по смыслу подпрограммы (переменные, курсоры…). В этом посту рассмотрим простейший пример объявления пакета, его реализации и использования.

Состоят пакеты из спецификации и тела (body). Спецификация состоит из объявления субпрограмм, это что-то типа хедера в C. В коде ниже мы создаём спецификацию пакета cpa_master, которая содержит переменную, две процедуры и одну функцию. Переменная содержит адрес блога CPA-мастер. Первая процедура ровно как и функция не требуют никаких параметров, второй процедуре передаются два числа. Дополнительно функция возвращает строку.

create or replace package cpa_master as

v_url varchar2(50) := 'http://cpa-master.com/';
procedure hello_world;
procedure print_sum(x number, y number);
function get_url return varchar2;

end cpa_master;

Тело пакета содержит имплементацию процедур и функции.

create or replace package body cpa_master as

procedure hello_world as
begin
    dbms_output.put_line('Hello world!');
end hello_world;

procedure print_sum(x number, y number) as
    result number;
begin
    result := x + y;
    dbms_output.put_line('result: ' || result);
end print_sum;

function get_url return varchar2 as
begin
    return v_url;
end get_url;

end cpa_master;

В коде ниже мы вызываем функции и процедуры пакета в PL/SQL.

cpa_master.hello_world();
cpa_master.print_sum(5, 2);
dbms_output.put_line(cpa_master.get_url() );

Функцию можно также использовать в SQL-запросе.

select cpa_master.get_url() as url from dual;
Понравился пост? Поделись в соцсетях и подписывайся на аккаунты в Twitter и Facebook!
Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

Похожие записи:

Как я писал в прошлом посте (Различия между T-SQL и PL/SQL), в прошлом семестре я проходил курс по хранилищам данных. Изначально я собирался написать больше постов, но времени не было. В черновике уже долгое время лежит несколько постов, но когда я их доделаю ...
Прошлым летом я допинал бакалавра в Бизнес-информатике и в октябре начал магистратуру. На работе я использую систему управления базами данных от Oracle, на курсе Data Warehouse (хранилище данных) сейчас я работаю с SQL Server. В этом посту я опишу несколько ра...
Наряду с другими технологиями (например, XML) при коммуникации клиента с сервером применяется нотация объектов JavaScript (JSON). На сервере данные, закодированные в JavaScript-объекте, перед обработкой нужно разкодировать. О том, как это сделать в PL/SQL и по...