Oracle 原理: 初步认识程序包
oracle 中的程序包和C中的類庫,JAVA中的package包類似。是過程、函數、變量、游標、異常的集合。程序包由規范和主體兩部分組成。規范主要用于聲明。聲明公有對象(類型、常量、變量、異常、游標規范、子程序規范)類似于C語言中的hpp和public。主體主要用于聲明程序包私有對象和實現規范中的子程序和游標,類似于C語言中的cpp和private。
在PL/SQL Developer??的菜單欄中點VIEW的Object Browser,選中Package ,新建new。
?
--------程序包規范---------- 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;----調用程序包中的函數和變量
?packagename.objectname。你會發現在規范中聲明過的對象可以訪問得到,而在主體中聲明的對象是訪問不到的。
?
另外在包頭(規范)中的游標聲明要用return 語句
cursor curname? return <DataType>
在包體中
cursor curname? return <DataType> is? <statement>? ?.
select *from USER_OBJECTS? ?--可查看子程序和程序包的信息
select *from USER_SOURCE? ?--可查看子程序和程序代碼
常用的程序包
| 程序包名稱 | 說明 |
| STANDARD和DBMS_STANDARD | 定義和擴展PL/SQL語言環境 |
| DBMS_LOB | 提供對 LOB數據類型進行操作的功能 |
| DBMS_OUTPUT | 處理PL/SQL塊和子程序輸出調試信息 |
| DBMS_RANDOM | 提供隨機數生成器 |
| DBMS_SQL | 允許用戶使用動態 SQL |
| DBMS_XMLDOM | 用DOM模型讀寫XML類型的數據 |
| DBMS_XMLPARSER | XML解析,處理XML文檔內容和結構 |
| DBMS_XMLQUERY | 提供將數據轉換為 XML 類型的功能 |
| DBMS_XSLPROCESSOR | 提供XSLT功能,轉換XML文檔 |
| UTL_FILE | 用 PL/SQL 程序來讀寫操作系統文本文件 |
| DBMS_Alert | 不用輪詢就允許應用命名并發出警告條件信號的過程與函數? |
| DBMS_DDL | 允許獲取PL/SQL程序內部一定數量的DDL語句的過程? |
| DBMS_Describe | 為存儲過程與函數描述API的過程? |
| DBMS_Job | 管理BLOBs、CLOBs、NCLOBs與BFILEs的過程與函數? |
| DBMS_Output | 允許PL/SQL程序生成終端輸出的過程與函數? |
| DBMS_Pipe | 允許數據庫會話使用管道通信(通信頻道)的過程與函數? |
| DBMS_SQL | 在PL/SQL程序內部執行動態SQL的過程與函數? |
| DBMS_Utility | DBMS_Utility? |
?
更多的包請查詢:?select * from dba_objects where OBJECT_TYPE ='PACKAGE'?
對應的使用方法和說明:? 光標對準按F1查看幫助文檔,沒有幫助文檔的按F1后點擊download下載。下載完后在對應目錄解壓后點build
或者可以直接下載 :
https://download.csdn.net/download/superSmart_Dong/12603260
?
總結
以上是生活随笔為你收集整理的Oracle 原理: 初步认识程序包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 原理:UNDO表空间
- 下一篇: oracle ORA-12526: TN