pl sql package oracle pl sql package tutorial with examples
Научете за PL SQL пакета, неговите предимства, спецификации и структура:
В тази статия ще продължим с PL / SQL серия . В PL SQL записи урок, научихме за записи и типове записи с примери за програмиране.
Тук ще изследваме пакети в PL / SQL и някои важни характеристики на пакетите. Също така ще обсъдим някои от основните операции върху тях.
Ще обсъдим също пакетите dbms_ouput в PL / SQL и неговите подпрограми.
Нека започнем с ученията !!
Какво ще научите:
PL SQL пакет
Пакетът е обект под формата на схема, която разделя логически свързани елементи, типове и подпрограми в PL / SQL. Пакетът се състои от две части: Спецификация на пакета и Корпус или дефиниция на опаковката .
Спецификацията на пакета е като интерфейс към приложението и се използва за деклариране на променливи, константи, типове, изключения, курсори и подпрограми. Тялото на пакета изпълнява подпрограмите и курсорите, декларирани в спецификацията на пакета.
Можем да актуализираме, отстраняваме грешки или да променяме тялото на пакета, без да докосваме спецификацията на пакета (наричан още интерфейс към пакета).
Предимства на PL / SQL пакета
Предимствата на пакета са изброени по-долу:
- Това дава модулност на нашия код.
- Помага за лесното проектиране на приложението.
- Пакетът PLSQL помага да се скрие информация с помощта на публични и частни елементи, типове данни и подпрограми.
- пакет позволява поддържане на информация за всички транзакции, без да се изисква да я съхранявате в базата данни.
- Пакетите спомагат за подобряване на изпълнението на изпълнението.
Спецификация на опаковката
Спецификацията на пакета е като интерфейс към пакета. Той се грижи за декларирането на променливи, константи, типове, изключения, курсори и подпрограми. По този начин той разполага с всички подробности за съдържанието на пакета, но няма изпълнението на подпрограмите.
Обектите в спецификацията на пакета са публични обекти. Всички подпрограми, реализирани в тялото на пакета, са частни обекти. Можем да декларираме множество глобални променливи, функции или процедури в спецификацията на пакета.
Спецификацията на пакета е независим обект и може да съществува без тяло на пакета.
Прилагане на кода:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Резултатът от горния код:
Пакетно тяло
Тялото на пакета съдържа изпълнението на курсорите и подпрограмите, декларирани в спецификацията на пакета. Трябва да се помни, че подпрограмите, внедрени в тялото на пакета, могат да бъдат достъпни извън пакета, при условие че са декларирани в спецификацията на пакета.
Подпрограмата, декларирана в спецификацията на пакета и тялото, трябва да бъде точна. Това сравнение се прави знак по знак на техните заглавки. В случай, че не съвпадат, PL / SQL извежда изключение.
как да преглеждате bin файлове на android -
Тялото на пакета може да съдържа други подпрограми, които не са декларирани в спецификацията на пакета. В този случай те са частни само за това тяло на пакета. СЪЗДАЙТЕ ТЯЛО ЗА ПАКЕТ е ключовата дума, използвана за създаване на тяло на пакет.
Нека вземем пример за създаване на тялото на пакета за останалите пакет.
Прилагане на код с корпус на пакета.
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
Резултатът от горния код трябва да бъде.
Вижте елементите на пакета
Тъй като приключихме с декларирането на елементите в спецификацията на пакета и тяхното внедряване в тялото на пакета, трябва да се позовем на тези елементи. Елементите на пакета се състоят от функции, процедури и променливи.
Тези публични елементи на пакета могат да бъдат достъпни чрез името на пакета, последвано от името на елемента, разделено с точката (.) Нотация.
Синтаксис:
package_name.element_name;
Прилагане на кодиране за достъп до елементи:
vr слушалки за xbox one x
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Резултатът от горния код:
Създайте PL SQL пакет
Ако даден пакет е извикан или посочен в сесия, нов екземпляр на този пакет се създава в PL / SQL. Имаме опцията да инициализираме елементите на пакета или да извършим каквито и да било други действия по време на създаването на екземпляр с блока за инициализация на пакети с код. Това е изпълнимият блок с код в тялото на пакета след инициализацията на елементите на пакета.
Синтаксис на създаване на пакети:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Тук package_n е името на пакета.
Претоварване на пакет
В пакета може да има множество подпрограми със сходни имена. Тази функция е полезна, ако искаме да имаме хомогенни параметри с разнородни типове данни. Концепцията за претоварване в пакета позволява на програмистите да споменават ясно вида на действието, което искат да извършат.
Прилагане на кодиране с претоварване на процедурата. (Пакетът е създаден):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Резултатът от горния код:
Прилагане на кодиране с претоварване на процедурата. (Създадено тяло на пакета)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
Резултатът от горния код:
Прилагане на кодиране с претоварване на процедурата. (Позоваване на пакетната процедура)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Резултатът от горния код:
Зависимост на пакета PLSQL
Зависимостите на пакета в PL / SQL са изброени по-долу:
- Спецификацията на пакета е независима идентичност.
- Тялото на пакета зависи от спецификацията на пакета.
- Тялото на пакета може да се компилира само поотделно. Ако обаче се компилира спецификация на пакета, тогава тялото трябва да се компилира отново.
- Функция или процедура в тялото на пакета, която зависи от частните елементи, трябва да бъде приложена след декларация на частните елементи.
Указания за създаване на пакет в PL SQL:
- Пакетът трябва да бъде написан с общи термини, за да могат да бъдат използвани повторно в бъдеще.
- Избягвайте дублиране на характеристики в пакет.
- Спецификацията на пакета съдържа ключа към правилно проектираното приложение. Пълна спецификация на пакета, преди да създадете тялото на пакета.
- Спецификацията на пакета трябва да съдържа само елементи, подпрограми и типове, които трябва да бъдат достъпни за потребителите на пакета. Не трябва да има ненужна информация за изпълнението.
- Спецификацията на пакета трябва да съдържа ограничен брой елементи. Това ще спести време за прекомпилиране на кода, тъй като модификация на спецификацията на пакета изисква PL / SQL да прекомпилира всички подпрограми, които препращат пакета.
Информация за пакета в PL / SQL
Всички съответни подробности като източника на пакета, подпрограмите и претоварените елементи се съхраняват в таблици за дефиниция на данни след създаването на пакет.
Списъкът с таблиците за дефиниция на данни е както следва:
- USER_PROCEDURES: Тази таблица съдържа информация за подпрограмата като претоварените елементи, object_id и т.н. за текущия потребител.
- ВСИЧКИ_ ПРОЦЕДУРИ: Тази таблица съдържа информация за подпрограмата като претоварените елементи, object_id и т.н. за всички потребители.
- USER_SOURCE: Тази таблица съдържа информацията за обектния източник за текущия потребител.
- ALL_SOURCE: Тази таблица съдържа информацията за обектния източник за всички потребители.
- ALL_OBJECT: Тази таблица съдържа информацията за пакета като create_date, object_id и други подробности за обекта за всички потребители.
Изход на СУБД в PL / SQL
Пакетът DBMS_OUTPUT позволява показване на изхода PL / SQL, произведен от подпрограми и блокове код. Това ни помага да отстраняваме грешки, да тестваме кода си и да изпращаме съобщения.
The put_line процедура генерира изходни данни в буфер. Информацията се показва с помощта на get_line процедура или чрез конфигуриране на SERVEROUTPUT ON в SQL * Plus.
Пакетът DBMS_OUTPUT съдържа следните подпрограми:
Sl No. | Име | Цели |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Ограничава изхода на съобщението. |
две | DBMS_OUTPUT.ENABLE (буфер В ИНТЕГРАЛНО ПО подразбиране 20000) | Позволява извеждането на съобщението. Ако буферът е зададен на NULL, той представлява неограничен размер на буфера. |
3 | DBMS_OUTPUT.GET_LINE (ред OUT VARCHAR, статус OUT NUMBER) | Извлича буферирана информация в рамките на един ред. |
4 | DBMS_OUTPUT.NEW_LINE | Прекратява маркер на края на реда. |
5 | DBMS_OUTPUT.PUT (артикул В VARCHAR) | Поставя непълна линия в буфера. |
6 | DBMS_OUTPUT.PUT_LINE (артикул В VARCHAR) | Поставя пълен ред в буфера. |
Прилагане на кода:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Резултатът от горния код:
Често задавани въпроси и отговори
В # 1) Какво представлява пакетът в PL SQL?
Отговор: Пакетът е обектна схема, която категоризира логически свързани променливи, константи, курсори, подпрограми и типове.
В # 2) Какви са предимствата на PL SQL пакетите?
Отговор: Ползите от пакета са изброени по-долу:
- С пакетите става лесно да се проектират приложения.
- С пакетите можем да постигнем капсулиране.
- Пакетите помагат да се постигне по-добра производителност по отношение на скоростта на изпълнение.
- Кодът става по-модулен с пакетите.
В # 3) Можем ли да създадем тяло на пакета без спецификация?
Отговор: Да, можем да създадем тяло на пакета без спецификация на пакета.
В # 4) Какво представлява Dbms_output Put_line в PL SQL?
Отговор: Dbms_output put_line е процедура в Oracle, която ни позволява да записваме информация в плосък файл или в PL / SQL изходен екран.
В # 5) Какво е Dbms_output?
Отговор: Dbms_output е пакет по подразбиране, който ни позволява да показваме информация за отстраняване на грешки, извеждане и да изпращаме съобщения от подпрограмите, тригерите, пакетите и PL / SQL блока на кода
каква услуга за електронна поща трябва да използвам
Заключение
В този урок обсъдихме подробно някои основни концепции за PL SQL пакетите, които са от съществено значение за използването им в реални приложения.
Покрихме следните теми, изброени по-долу:
- Пакети и тяхната структура.
- Различни характеристики на пакетите.
- DBMS изход.
- Подпрограми на пакета DBMS_OUTPUT.
<< PREV Tutorial | СЛЕДВАЩ Урок >>
Препоръчително четене
- PL SQL Урок за начинаещи с примери | Какво е PL / SQL
- PL SQL Records Урок с примери
- PL SQL курсор и низове: Урок с примери за кодове
- Урок за Python DateTime с примери
- Разработване на приложения на базата данни на Oracle: Oracle SQL & PL / SQL
- Водещи въпроси за интервюта за Oracle: Въпроси за Oracle Basic, SQL, PL / SQL
- Разлика между SQL Vs MySQL Vs SQL Server (с примери)
- Водещи въпроси за интервюта за формуляри и доклади на Oracle