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 видає виняток.
що таке альфа-тестування при тестуванні програмного забезпечення
Тіло пакету може містити інші підпрограми, які не задекларовані в специфікації пакета. У такому випадку вони є приватними лише для цього пакета. СТВОРИТИ ТЕЛО ПАКЕТУ - це ключове слово, що використовується для створення тіла пакета.
Візьмемо приклад для створення тіла пакета для інші пакет.
Впровадження коду з тілом пакета.
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;
Реалізація кодування для доступу до елементів:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Вихід вищевказаного коду:
Створіть пакет SQL PL
Якщо пакет викликається або на нього посилається в сеансі, новий екземпляр цього пакету створюється в 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
Усі відповідні деталі, такі як джерело пакета, підпрограми та перевантажені елементи, зберігаються в таблицях визначення даних після створення пакета.
Список таблиць визначення даних наведений нижче:
- ПРОЦЕДУРИ КОРИСТУВАЧА: Ця таблиця містить інформацію про підпрограму, як-от перевантажені елементи, object_id тощо для поточного користувача.
- ВСІ_ПРОЦЕДУРИ: Ця таблиця містить інформацію про підпрограми, як-от перевантажені елементи, object_id тощо для всіх користувачів.
- USER_SOURCE: Ця таблиця містить інформацію про джерело об'єкта для поточного користувача.
- ALL_SOURCE: Ця таблиця містить інформацію про джерело об'єкта для всіх користувачів.
- ALL_OBJECT: Ця таблиця містить інформацію про пакет, як-от date_date, object_id та інші деталі об'єкта для всіх користувачів.
Вихід СУБД на PL / SQL
Пакет DBMS_OUTPUT дозволяє відображати вихідні дані PL / SQL, створені з підпрограм і блоків коду. Це допомагає нам налагоджувати, тестувати наш код та надсилати повідомлення.
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;
Вихід вищевказаного коду:
Найчастіші запитання та відповіді
Q # 1) Що таке пакет у PL SQL?
Відповідь: Пакет - це об’єктна схема, яка класифікує логічно пов’язані змінні, константи, курсори, підпрограми та типи.
Q # 2) Які переваги PL SQL-пакетів?
Відповідь: Переваги пакету перелічені нижче:
- За допомогою пакетів стає легко розробляти програми.
- За допомогою пакетів ми можемо досягти інкапсуляції.
- Пакети допомагають отримати кращу продуктивність з точки зору швидкості виконання.
- Код стає більш модульним із пакетами.
Q # 3) Чи можемо ми створити тіло пакета без специфікації?
Відповідь: Так, ми можемо створити тіло пакета без специфікації пакета.
Q # 4) Що таке Dbms_output Put_line у PL SQL?
Відповідь: Dbms_output put_line - це процедура в Oracle, яка дозволяє нам записувати інформацію у плоский файл або на екран виводу PL / SQL.
Q # 5) Що таке Dbms_output?
Відповідь: Dbms_output - це пакет за замовчуванням, який дозволяє нам відображати інформацію про налагодження, виводити та надсилати повідомлення з підпрограм, тригерів, пакетів та блоку коду PL / SQL
Запитання щодо інтерв’ю щодо селену за 5 років досвіду
Висновок
У цьому посібнику ми детально обговорили деякі основні поняття про пакети PL SQL, які є важливими для їх використання в реальних додатках.
Ми розглянули наступні теми, перелічені нижче:
- Пакети та їх структура.
- Різні особливості пакетів.
- Вихід СУБД.
- Підпрограми пакету DBMS_OUTPUT.
<< PREV Tutorial | НАСТУПНИЙ підручник >>
Рекомендована література
- PL Підручник з SQL для початківців із прикладами Що таке PL / SQL
- PL Підручник із записів SQL із прикладами
- PL SQL Курсор та рядки: Підручник із прикладами коду
- Підручник із прикладами Python DateTime
- Розробка додатків для баз даних Oracle: Oracle SQL & PL / SQL
- Найпопулярніші запитання щодо інтерв’ю Oracle: Основні питання Oracle, SQL, PL / SQL
- Різниця між SQL Vs MySQL Vs SQL Server (з прикладами)
- Найпопулярніші запитання для інтерв’ю щодо форм та звітів Oracle