pl sql package oracle pl sql package tutorial with examples
Obteniu informació sobre el paquet PL SQL, els seus avantatges, especificacions i estructura:
En aquest article, continuarem amb Sèrie PL / SQL . A la Registres SQL PL tutorial, hem après sobre registres i tipus de registre amb exemples de programació.
Aquí explorarem els paquets de PL / SQL i algunes característiques importants dels paquets. A més, parlarem d'algunes de les operacions bàsiques sobre elles.
També parlarem dels paquets dbms_ouput a PL / SQL i els seus subprogrames.
Comencem pels aprenentatges !!
Què aprendreu:
Paquet PL SQL
Un paquet és un objecte en forma d’esquema que segrega elements, tipus i subprogrames connectats lògicament a PL / SQL. Un paquet consta de dues parts: Especificació del paquet i Cos o definició del paquet .
L'especificació del paquet és com una interfície de l'aplicació i s'utilitza per declarar variables, constants, tipus, excepcions, cursors i subprogrames. El cos d'un paquet implementa els subprogrames i els cursors declarats a l'especificació del paquet.
Podem actualitzar, depurar o canviar un cos del paquet sense tocar l’especificació del paquet (també anomenada interfície del paquet).
Avantatges del paquet PL / SQL
A continuació s’enumeren els avantatges del paquet:
- Dóna modularitat al nostre codi.
- Ajuda a dissenyar l’aplicació fàcilment.
- El paquet PLSQL ajuda a ocultar informació amb l'ajuda d'elements públics i privats, tipus de dades i subprogrames.
- package permet mantenir la informació sobre totes les transaccions sense necessitat d’emmagatzemar-la a la base de dades.
- Els paquets ajuden a millorar el rendiment de l'execució.
Especificació del paquet
Una especificació del paquet és com una interfície del paquet. S'encarrega de la declaració de variables, constants, tipus, excepcions, cursors i subprogrames. Per tant, té tots els detalls sobre el contingut del paquet, però no té la implementació dels subprogrames.
Els objectes dins d'una especificació de paquet són objectes públics. Tots els subprogrames implementats dins d'un cos de paquet són objectes privats. Podem declarar diverses variables globals, funcions o procediments dins de l’especificació del paquet.
Una especificació de paquet és una entitat independent i pot existir sense un cos de paquet.
Implementació del codi:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
La sortida del codi anterior:
Cos del paquet
El cos del paquet conté la implementació dels cursors i subprogrames declarats a l'especificació del paquet. Cal recordar que es pot accedir als subprogrames implementats al cos del paquet fora del paquet sempre que estiguin declarats a l'especificació del paquet.
El subprograma declarat a l'especificació i el cos del paquet ha de ser exacte. Aquesta comparació es fa testimoni a testimoni de les seves capçaleres. En cas que no coincideixin, PL / SQL genera una excepció.
Què és el cicle de vida del desenvolupament de programari?
El cos del paquet pot contenir altres subprogrames que no es declaren a l'especificació del paquet. En aquest cas, només són privades per a aquest cos del paquet. CREAR EL COS DEL PAQUET és la paraula clau utilitzada per crear un cos de paquet.
Prenguem un exemple per crear el cos del paquet per a els altres paquet.
Implementació de codi amb el cos del paquet.
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; /
La sortida del codi anterior hauria de ser.
Consulteu els elements del paquet
A mesura que hem acabat de declarar els elements de l'especificació del paquet i d'implementar-los al cos del paquet, hem de referir-nos a aquests elements. Els elements del paquet consisteixen en les funcions, els procediments i les variables.
Es pot accedir a aquests elements públics del paquet pel nom del paquet seguit del nom de l’element separat per la notació punt (.).
Sintaxi:
package_name.element_name;
Implementació de codificació per accedir a elements:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
La sortida del codi anterior:
quina empresa és actualment líder en serveis d’allotjament web basats en el núvol?
Creeu un paquet SQL PL
Si es crida o es fa referència a un paquet en una sessió, es crea una nova instància d'aquest paquet a PL / SQL. Tenim l'opció d'inicialitzar els elements del paquet o realitzar qualsevol altra acció durant la creació de la instància amb el bloc de codi d'inicialització del paquet. Aquest és el bloc de codi executable dins del cos del paquet després de la inicialització dels elements del paquet.
Sintaxi de creació de paquets:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Aquí, package_n és el nom del paquet.
Sobrecàrrega d'un paquet
Hi pot haver diversos subprogrames dins d’un paquet amb noms similars. Aquesta característica és útil si volem tenir paràmetres homogenis amb tipus de dades heterogenis. El concepte de sobrecàrrega dins del paquet permet als programadors esmentar clarament el tipus d’acció que volen realitzar.
Implementació de codificació amb sobrecàrrega de procediments. (Paquet creat):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
La sortida del codi anterior:
Implementació de codificació amb sobrecàrrega de procediments. (S'ha creat el cos del paquet)
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; /
La sortida del codi anterior:
Implementació de codificació amb sobrecàrrega de procediments. (Referència del procediment del paquet)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
La sortida del codi anterior:
Dependència del paquet PLSQL
A continuació es detallen les dependències de paquets de PL / SQL:
- Una especificació de paquet és una identitat independent.
- El cos del paquet depèn de les especificacions del paquet.
- Un cos del paquet només es pot compilar per separat. Tanmateix, si es compila una especificació del paquet, s'ha de tornar a compilar el cos.
- La funció o un procediment dins d'un cos del paquet que depèn dels elements privats s'hauria d'implementar després de la declaració dels elements privats.
Directrius per crear un paquet a PL SQL:
- Un paquet s’ha d’escriure en termes genèrics perquè es puguin reutilitzar en el futur.
- Eviteu les característiques duplicades en un paquet.
- L'especificació del paquet conté la clau d'una aplicació dissenyada correctament. Completeu les especificacions del paquet abans de crear el cos del paquet.
- Una especificació del paquet només ha de contenir elements, subprogrames i tipus que han de ser accessibles per als usuaris del paquet. No hauria de tenir informació d’implementació innecessària.
- L'especificació del paquet ha de contenir un nombre limitat d'elements. Estalviarà temps per recompilar el codi, ja que una modificació de l’especificació del paquet requereix que PL / SQL recompile tots els subprogrames que fan referència al paquet.
Informació del paquet a PL / SQL
Tots els detalls rellevants, com l'origen del paquet, els subprogrames i els elements sobrecarregats, s'emmagatzemen a les taules de definició de dades després de crear un paquet.
La llista de les taules de definició de dades és la següent:
- PROCEDIMENTS D'USUARI: Aquesta taula conté informació de subprograma, com ara els elements sobrecarregats, object_id, etc. per a l'usuari actual.
- TOTS_PROCEDIMENTS: Aquesta taula conté informació de subprograma, com ara els elements sobrecarregats, object_id, etc. per a tots els usuaris.
- USER_SOURCE: Aquesta taula conté la informació sobre l'origen de l'objecte per a l'usuari actual.
- ALL_SOURCE: Aquesta taula conté la informació sobre l'origen de l'objecte per a tots els usuaris.
- ALL_OBJECT: Aquesta taula conté la informació del paquet, com ara data_creació, id_objecte i altres detalls d’objectes per a tots els usuaris.
Sortida de SGBD a PL / SQL
El paquet DBMS_OUTPUT permet mostrar la sortida PL / SQL produïda a partir de subprogrames i blocs de codi. Això ens ajuda a depurar, provar el nostre codi i enviar missatges.
El put_line El procediment produeix les dades de sortida a una memòria intermèdia. La informació es mostra amb l'ajut del fitxer get_line procediment o configurant SERVEROUTPUT ON a SQL * Plus.
El paquet DBMS_OUTPUT conté els subprogrames següents:
Sl núm. | Nom | Propòsits |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Confina la sortida del missatge. |
2 | DBMS_OUTPUT.ENABLE (buffer IN INTEGER DEFAULT 20000) | Permet la sortida del missatge. Si la memòria intermèdia s'estableix en NULL, representa una mida il·limitada de la memòria intermèdia. |
3 | DBMS_OUTPUT.GET_LINE (línia OUT VARCHAR, estat OUT NUMBER) | Obté una informació de memòria intermèdia dins d'una sola línia. |
4 | DBMS_OUTPUT.NEW_LINE | Finalitza un marcador de final de línia. |
5 | DBMS_OUTPUT.PUT (element EN VARCHAR) | Posa una línia incompleta al buffer. |
6 | DBMS_OUTPUT.PUT_LINE (element EN VARCHAR) | Posa una línia completa al buffer. |
Implementació del codi:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
La sortida del codi anterior:
Preguntes i respostes freqüents
P # 1) Què és el paquet a PL SQL?
Resposta: Un paquet és un esquema d'objectes que classifica variables, constants, cursors, subprogrames i tipus relacionats lògicament.
Q # 2) Quins avantatges tenen els paquets PL SQL?
Resposta: A continuació es detallen els avantatges del paquet:
- Amb els paquets, es fa fàcil dissenyar aplicacions.
- Amb els paquets, podem aconseguir l’encapsulació.
- Els paquets ajuden a obtenir un millor rendiment en termes de velocitat d'execució.
- El codi es fa més modular amb els paquets.
P # 3) Podem crear un cos del paquet sense especificar-ho?
Resposta: Sí, podem crear un cos del paquet sense especificar-lo.
Q # 4) Què és Dbms_output Put_line a PL SQL?
Resposta: El dbms_output put_line és un procediment d'Oracle que ens permet escriure informació en un fitxer pla o a la pantalla de sortida PL / SQL.
Q # 5) Què és Dbms_output?
Resposta: El dbms_output és un paquet per defecte que ens permet mostrar informació de sortida, sortida i enviar missatges des dels subprogrames, activadors, paquets i bloc de codi PL / SQL
on s’utilitza c ++
Conclusió
En aquest tutorial, hem analitzat en detall alguns conceptes bàsics sobre els paquets PL SQL que són essencials per utilitzar-los en aplicacions reals.
A continuació, hem tractat els temes següents:
- Paquets i la seva estructura.
- Diferents característiques dels paquets.
- Sortida SGBD.
- Subprogrames del paquet DBMS_OUTPUT.
<< PREV Tutorial | NEXT Tutorial >>
Lectura recomanada
- Tutorial PL SQL per a principiants amb exemples | Què és PL / SQL
- Tutorial de PL SQL Records amb exemples
- Cursor i cadenes PL SQL: tutorial amb exemples de codi
- Tutorial de Python DateTime amb exemples
- Desenvolupament d'aplicacions de bases de dades Oracle: Oracle SQL i PL / SQL
- Preguntes principals de l'entrevista d'Oracle: preguntes Oracle Basic, SQL, PL / SQL
- Diferència entre SQL vs MySQL vs SQL Server (amb exemples)
- Preguntes principals sobre les entrevistes sobre formularis i informes d'Oracle