Oracle 原理: 初步认识程序包
oracle 中的程序包和C中的類庫,JAVA中的package包類似。是過程、函數(shù)、變量、游標(biāo)、異常的集合。程序包由規(guī)范和主體兩部分組成。規(guī)范主要用于聲明。聲明公有對(duì)象(類型、常量、變量、異常、游標(biāo)規(guī)范、子程序規(guī)范)類似于C語言中的hpp和public。主體主要用于聲明程序包私有對(duì)象和實(shí)現(xiàn)規(guī)范中的子程序和游標(biāo),類似于C語言中的cpp和private。
在PL/SQL Developer??的菜單欄中點(diǎn)VIEW的Object Browser,選中Package ,新建new。
?
--------程序包規(guī)范---------- create or replace package pckname is-- Author : HU-- Created : 2020/7/8 23:07:05-- Purpose : asd-- Public type declarationstype <TypeName> is <Datatype>;-- Public constant declarations<ConstantName> constant <Datatype> := <Value>;-- Public variable declarations<VariableName> <Datatype>;-- Public function and procedure declarationsfunction <FunctionName>(<Parameter> <Datatype>) return <Datatype>;end pckname;程序包主體
create or replace package body packname is-- Private type declarationstype <TypeName> is <Datatype>;-- Private constant declarations<ConstantName> constant <Datatype> := <Value>;-- Private variable declarations<VariableName> <Datatype>;-- Function and procedure implementationsfunction <FunctionName>(<Parameter> <Datatype>) return <Datatype> is<LocalVariable> <Datatype>;begin<Statement>;return(<Result>);end;begin-- Initialization<Statement>; end packname;----調(diào)用程序包中的函數(shù)和變量
?packagename.objectname。你會(huì)發(fā)現(xiàn)在規(guī)范中聲明過的對(duì)象可以訪問得到,而在主體中聲明的對(duì)象是訪問不到的。
?
另外在包頭(規(guī)范)中的游標(biāo)聲明要用return 語句
cursor curname? return <DataType>
在包體中
cursor curname? return <DataType> is? <statement>? ?.
select *from USER_OBJECTS? ?--可查看子程序和程序包的信息
select *from USER_SOURCE? ?--可查看子程序和程序代碼
常用的程序包
| 程序包名稱 | 說明 |
| STANDARD和DBMS_STANDARD | 定義和擴(kuò)展PL/SQL語言環(huán)境 |
| DBMS_LOB | 提供對(duì) LOB數(shù)據(jù)類型進(jìn)行操作的功能 |
| DBMS_OUTPUT | 處理PL/SQL塊和子程序輸出調(diào)試信息 |
| DBMS_RANDOM | 提供隨機(jī)數(shù)生成器 |
| DBMS_SQL | 允許用戶使用動(dòng)態(tài) SQL |
| DBMS_XMLDOM | 用DOM模型讀寫XML類型的數(shù)據(jù) |
| DBMS_XMLPARSER | XML解析,處理XML文檔內(nèi)容和結(jié)構(gòu) |
| DBMS_XMLQUERY | 提供將數(shù)據(jù)轉(zhuǎn)換為 XML 類型的功能 |
| DBMS_XSLPROCESSOR | 提供XSLT功能,轉(zhuǎn)換XML文檔 |
| UTL_FILE | 用 PL/SQL 程序來讀寫操作系統(tǒng)文本文件 |
| DBMS_Alert | 不用輪詢就允許應(yīng)用命名并發(fā)出警告條件信號(hào)的過程與函數(shù)? |
| DBMS_DDL | 允許獲取PL/SQL程序內(nèi)部一定數(shù)量的DDL語句的過程? |
| DBMS_Describe | 為存儲(chǔ)過程與函數(shù)描述API的過程? |
| DBMS_Job | 管理BLOBs、CLOBs、NCLOBs與BFILEs的過程與函數(shù)? |
| DBMS_Output | 允許PL/SQL程序生成終端輸出的過程與函數(shù)? |
| DBMS_Pipe | 允許數(shù)據(jù)庫會(huì)話使用管道通信(通信頻道)的過程與函數(shù)? |
| DBMS_SQL | 在PL/SQL程序內(nèi)部執(zhí)行動(dòng)態(tài)SQL的過程與函數(shù)? |
| DBMS_Utility | DBMS_Utility? |
?
更多的包請(qǐng)查詢:?select * from dba_objects where OBJECT_TYPE ='PACKAGE'?
對(duì)應(yīng)的使用方法和說明:? 光標(biāo)對(duì)準(zhǔn)按F1查看幫助文檔,沒有幫助文檔的按F1后點(diǎn)擊download下載。下載完后在對(duì)應(yīng)目錄解壓后點(diǎn)build
或者可以直接下載 :
https://download.csdn.net/download/superSmart_Dong/12603260
?
總結(jié)
以上是生活随笔為你收集整理的Oracle 原理: 初步认识程序包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 原理:UNDO表空间
- 下一篇: oracle ORA-12526: TN