Oracle中packages的使用
最近,由于开发的功能较多,对于编写的很多过程,看着英文名字觉得挺熟悉,但要看功能,则需要每个点开去开备注或者代码,觉得很
最近,由于开发的功能较多,对于编写的很多过程,看着英文名字觉得挺熟悉,但要看功能,则需要每个点开去开备注或者代码,觉得很是郁闷。突见packages,想将所有写的过程放到一起,这样下次点开一个,就能看到所有功能的过程,,很是方便。趁着下午偶闲一会,将packages小做研究。
包的作用 : 包可以将任何出现在块声明的语句 ( 过程 , 函数 , 游标 , 变量 ) 放于包中 , 相当于一个容器 。 将声明语句放入包中的好处是 : 用户可以从其他 PL/SQL 块中对其进行引用 , 因此包为 PL/SQL 提供了全程变量 。
包分为两部分 : 包头和包体。
如何创建包
1) 包头 :
语法格式 :
CREATE OR REPLACE PACKAGE package_name /* 包头名称 */
IS|AS pl/sql_package_spec /* 定义过程 , 函数以及返回类型 , 变量 , 常量及数据类型定义 */
定义包头应当遵循以下原则 :
1) 包元素位置可以任意安排 。然而在声明部分 , 对象必须在引用前进行声明 。
2) 包头可以不对任何类型的元素进行说明 。 例如 , 包头可以只带过程和函数说明语句 , 而不声明任何异常和类型 。
3) 对过程和函数的任何声明都必须只对子程序和其参数进行描述 , 不能有任何代码的说明 , 代码的实现只能在包体中出现 。 它不同于块声明 , 在块声明中 , 过程和函数的代码可同时出现在声明部分 。
2. 包体 :
语法格式 :
CREATE OR REPLACE PACKAGE BODY package_name/* 包名必须与包头的包名一致 */
IS | AS pl/sql_package_body /* 游标 , 函数 , 过程的具体定义 */
包体是与包头相互独立的 , 包体只能在包头完成编译后才能进行编译 。 包体中带有包头中描述的子程序的具体实现的代码段 。 除此之外 , 包体还可以包括具有包体人全句属性的附加声明部分 , 但这些附加声明对于包头是不见的 。
EG: 定义一个包头
CREATE OR REPLACE PACKAGE select_table
IS
TYPE tab_02 IS RECORD
(
itnum_1 varchar2(1),
itnum_2 varchar2(1)
);
TYPE tab_03 IS RECORD
(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1)
);
TYPE tab_04 IS RECORD
(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1),
itnum_4 varchar2(1)
);
TYPE tab_05 IS RECORD
(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1),
itnum_4 varchar2(1),
itnum_5 varchar2(1)
);
TYPE tab_06 IS RECORD
(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1),
itnum_4 varchar2(1),
itnum_5 varchar2(1),
itnum_6 varchar2(1)
);
TYPE cur_02 IS REF CURSOR RETURN tab_02;
TYPE cur_03 IS REF CURSOR RETURN tab_03;
TYPE cur_04 IS REF CURSOR RETURN tab_04;
TYPE cur_05 IS REF CURSOR RETURN tab_05;
TYPE cur_06 IS REF CURSOR RETURN tab_06;
END select_tab;
EG:
CREATE OR REPLACE PACKAGE test_package
IS
FUNCTION average
(cnum IN char)
RETURN NUMBER;
PRODURE student_grade
(CUR OUT select_table.cur_04);--CUR 的数据类型是 select_table 包中 cur_o4
END test_package;

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

Die Volltext-Suchfunktionen von InnoDB sind sehr leistungsfähig, was die Effizienz der Datenbankabfrage und die Fähigkeit, große Mengen von Textdaten zu verarbeiten, erheblich verbessern kann. 1) InnoDB implementiert die Volltext-Suche durch invertierte Indexierung und unterstützt grundlegende und erweiterte Suchabfragen. 2) Verwenden Sie die Übereinstimmung und gegen Schlüsselwörter, um den Booleschen Modus und die Phrasesuche zu unterstützen. 3) Die Optimierungsmethoden umfassen die Verwendung der Word -Segmentierungstechnologie, die regelmäßige Wiederaufbauung von Indizes und die Anpassung der Cache -Größe, um die Leistung und Genauigkeit zu verbessern.

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.
