pl sql package oracle pl sql package tutorial with examples
Сазнајте о ПЛ СКЛ пакету, његовим предностима, спецификацијама и структури:
У овом чланку ћемо наставити са ПЛ / СКЛ серија . У ПЛ СКЛ записи уџбеник, научили смо о записима и врстама записа са примерима програмирања.
Овде ћемо истражити пакете у ПЛ / СКЛ и неке важне карактеристике пакета. Такође, разговараћемо о неким основним операцијама на њима.
Такође ћемо разговарати о дбмс_оупут пакетима у ПЛ / СКЛ и његовим потпрограмима.
Почнимо са учењима !!
Шта ћете научити:
ПЛ СКЛ пакет
Пакет је објекат у облику шеме који раздваја логички повезане ставке, типове и потпрограме у ПЛ / СКЛ. Пакет се састоји из два дела: Спецификација пакета и Тело или дефиниција пакета .
Спецификација пакета је попут интерфејса за апликацију и користи се за декларацију променљивих, константи, типова, изузетака, курсора и потпрограма. Тело пакета имплементира потпрограме и показиваче декларисане у спецификацији пакета.
Можемо да ажурирамо, отклонимо грешке или променимо тело пакета без додиривања спецификације пакета (назива се и интерфејсом пакета).
Предности ПЛ / СКЛ пакета
Предности пакета су наведене у наставку:
- Даје модуларност нашем коду.
- Помаже у једноставном дизајнирању апликације.
- ПЛСКЛ пакет помаже у сакривању информација уз помоћ јавних и приватних предмета, типова података и потпрограма.
- пакет омогућава одржавање информација у свим трансакцијама без потребе за њиховим чувањем у бази података.
- Пакети помажу у побољшању перформанси извршења.
Спецификација пакета
Спецификација пакета је попут интерфејса за пакет. Води рачуна о декларацији променљивих, константи, типова, изузетака, курсора и потпрограма. Стога има све детаље о садржају пакета, али нема имплементацију потпрограма.
Објекти унутар спецификације пакета су јавни објекти. Сви потпрограми имплементирани унутар тела пакета су приватни објекти. Можемо пријавити више глобалних променљивих, функција или процедура у оквиру спецификације пакета.
Спецификација пакета је независна целина и може постојати без тела пакета.
Имплементација кода:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Излаз горњег кода:
Тело пакета
Тело пакета садржи имплементацију курсора и потпрограма декларисаних у спецификацији пакета. Мора се имати на уму да се подпрограмима имплементираним у телу пакета може приступити изван пакета под условом да су декларисани у спецификацији пакета.
Подпрограм наведен у спецификацији пакета и телу мора бити тачан. Ово поређење се врши по знаковима њихових заглавља. У случају да се не подударају, ПЛ / СКЛ доноси изузетак.
како конфигурисати јунит у ецлипсе-у
Тело пакета може садржати друге потпрограме који нису декларисани у спецификацији пакета. У том случају, они су приватни само за то тело пакета. СТВОРИТЕ ТЕЛО ПАКЕТА је кључна реч која се користи за креирање тела пакета.
Узмимо пример за стварање тела пакета за остали пакет.
Имплементација кода са телом пакета.
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; /
Излаз горњег кода треба да буде.
бесплатни ИоуТубе за мп4 конвертер за мац
Погледајте Елементи пакета
Како смо завршили са декларисањем елемената у спецификацији пакета и њиховом применом у тело пакета, морамо се осврнути на те елементе. Елементи пакета састоје се од функција, процедура и променљивих.
Овим јавним елементима пакета може се приступити именом пакета иза којег следи име елемента одвојено тачком (.) Ознаком.
Синтакса:
package_name.element_name;
Имплементација кодирања за приступ елементима:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Излаз горњег кода:
Направите ПЛ СКЛ пакет
Ако се пакет позива или упућује на њега у сесији, нова инстанца тог пакета креира се у ПЛ / СКЛ. Имамо могућност да иницијализујемо елементе пакета или извршимо било које друге радње током креирања инстанце помоћу блока иницијализације пакета кода. Ово је извршни блок кода унутар тела пакета након иницијализације елемената пакета.
Синтакса стварања пакета:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Овде је пацкаге_н назив пакета.
Преоптерећење пакета
У пакету може бити више потпрограма са сличним именима. Ова функција је корисна ако желимо да имамо хомогене параметре са хетерогеним типовима података. Концепт преоптерећења унутар пакета омогућава програмерима да јасно наведу врсту радње коју желе да изврше.
Имплементација кодирања са преоптерећењем процедура. (Пакет креиран):
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;
Излаз горњег кода:
Зависност пакета ПЛСКЛ
Зависности пакета у ПЛ / СКЛ наведене су у наставку:
- Спецификација пакета је независни идентитет.
- Тело пакета ослања се на спецификацију пакета.
- Тело пакета може се саставити само одвојено. Међутим, ако је састављена спецификација пакета, тело треба поново саставити.
- Функцију или процедуру унутар тела пакета која зависи од приватних елемената треба применити након декларације приватних елемената.
Смернице за креирање пакета у ПЛ СКЛ:
- Пакет треба да буде написан генерички, како би се могао поново користити у будућности.
- Избегавајте дупликате карактеристика у пакету.
- Спецификација пакета садржи кључ за правилно дизајнирану апликацију. Комплетна спецификација пакета пре креирања тела пакета.
- Спецификација пакета треба да садржи само ставке, потпрограме и типове који морају бити доступни корисницима пакета. Не би требало да има непотребне информације о примени.
- Спецификација пакета треба да садржи ограничени број предмета. Уштедеће време за прекомпајлирање кода, јер модификација спецификације пакета захтева да ПЛ / СКЛ рекомпајлира све потпрограме који упућују на пакет.
Информације о пакету у ПЛ / СКЛ
Сви релевантни детаљи попут извора пакета, потпрограма и преоптерећених ставки чувају се у табелама дефиниције података након креирања пакета.
Списак табела дефиниције података је следећи:
- УСЕР_ПРОЦЕДУРЕС: Ова табела садржи информације о потпрограму попут преоптерећених ставки, објецт_ид и тако даље за тренутног корисника.
- СВИ_ПРОЦЕДУРЕ: Ова табела садржи информације о потпрограму као што су преоптерећене ставке, објецт_ид итд. За све кориснике.
- УСЕР_СОУРЦЕ: Ова табела садржи информације о извору објекта за тренутног корисника.
- АЛЛ_СОУРЦЕ: Ова табела садржи информације о извору објекта за све кориснике.
- АЛЛ_ОБЈЕЦТ: Ова табела садржи информације о пакету као што су датум_ креирања, објект_ид и други детаљи објекта за све кориснике.
ДБМС излаз у ПЛ / СКЛ
ДБМС_ОУТПУТ пакет омогућава приказ ПЛ / СКЛ излаза произведеног из потпрограма и блокова кода. Ово нам помаже у отклањању грешака, тестирању кода и слању порука.
Тхе пут_лине поступак производи излазне податке у међуспремник. Информације се приказују уз помоћ гет_лине поступак или конфигурисањем СЕРВЕРОУТПУТ ОН у СКЛ * Плус.
ДБМС_ОУТПУТ пакет садржи следеће потпрограме:
Сл Но. | Име | Сврха |
---|---|---|
1 | ДБМС_ОУТПУТ.ДИСАБЛЕ | Ограничава излаз поруке. |
два | ДБМС_ОУТПУТ.ЕНАБЛЕ (бафер ИН ИНТЕГЕР ДЕФАУЛТ 20000) | Омогућава излаз поруке. Ако је бафер постављен на НУЛЛ, то представља неограничену величину бафера. |
3 | ДБМС_ОУТПУТ.ГЕТ_ЛИНЕ (ред ОУТ ВАРЦХАР, статус ОУТ НУМБЕР) | Дохваћа баферисане информације у једном реду. |
4 | ДБМС_ОУТПУТ.НЕВ_ЛИНЕ | Завршава крај маркера. |
5 | ДБМС_ОУТПУТ.ПУТ (ставка у ВАРЦХАР-у) | Ставља непотпуну линију у бафер. |
6 | ДБМС_ОУТПУТ.ПУТ_ЛИНЕ (ставка у ВАРЦХАР-у) | Ставља комплетну линију у бафер. |
Имплементација кода:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Излаз горњег кода:
Често постављана питања и одговори
П # 1) Шта је пакет у ПЛ СКЛ-у?
Одговор: Пакет је објектна шема која категорише логички повезане променљиве, константе, показиваче, потпрограме и типове.
П # 2) Које су предности ПЛ СКЛ пакета?
Одговор: Предности пакета су наведене у наставку:
- Са пакетима постаје лако дизајнирати апликације.
- Пакетима можемо постићи инкапсулацију.
- Пакети помажу у постизању бољих перформанси у погледу брзине извршавања.
- Код постаје модуларнији са пакетима.
П # 3) Можемо ли створити тело пакета без спецификације?
Одговор: Да, можемо створити тело пакета без спецификације пакета.
П # 4) Шта је Дбмс_оутпут Пут_лине у ПЛ СКЛ-у?
Одговор: Дбмс_оутпут пут_лине је поступак у Орацле-у који нам омогућава да записујемо информације у равну датотеку или на ПЛ / СКЛ излазни екран.
П # 5) Шта је Дбмс_оутпут?
Одговор: Дбмс_оутпут је задани пакет који нам омогућава приказ информација о отклањању грешака, излаза и слање порука из потпрограма, окидача, пакета и ПЛ / СКЛ блока кода
ворлд оф варцрафт најбољи приватни сервер
Закључак
У овом упутству детаљно смо разговарали о неким основним концептима о ПЛ СКЛ пакетима који су неопходни за њихову употребу у стварним апликацијама.
Обрадили смо следеће теме наведене у наставку:
- Паковања и њихова структура.
- Различите карактеристике пакета.
- ДБМС излаз.
- Потпрограми пакета ДБМС_ОУТПУТ.
<< PREV Tutorial |. | СЛЕДЕЋА Лекција >>
Препоручено читање
- ПЛ СКЛ лекције за почетнике са примерима | Шта је ПЛ / СКЛ
- ПЛ СКЛ евиденција Водич са примерима
- ПЛ СКЛ курсор и низови: Водич са примерима кода
- Питхон ДатеТиме Водич са примерима
- Развој апликације Орацле базе података: Орацле СКЛ и ПЛ / СКЛ
- Најчешћа питања за Орацле интервју: Орацле Басиц, СКЛ, ПЛ / СКЛ питања
- Разлика између СКЛ Вс МиСКЛ Вс СКЛ Сервер (са примерима)
- Најчешћа питања за интервјуе за Орацле обрасце и извештаје