PL/SQL学习笔记-程序包

一:程序包的说明

create or replace package p_xland
is
pragma serially_reusable;
v_val varchar2(32);
function set_val(ref_val varchar2) return varchar2;
end p_xland;

程序包可以包含多个变量,函数,过程。
函数或过程应该放在变量之后声明
pragma serially_reusable;决定创建的包是否可以连续使用。
有此句,调用包的时候结果将不受以前调用所影响

二:程序包体

create or replace package body p_xland
is
pragma serially_reusable;
function set_val(ref_val varchar2) return varchar2
is
begin
v_val := ref_val;
return 'myreturnval';
end set_val;
end p_xland;

程序包体和程序包的名字必须相同
程序包体内的过程或者函数与普通的过程函数相同
总之程序包就像一个对象

三:调用程序包

declare
v_myval varchar2(32):='xland';
begin
p_xland.v_val := v_myval;
dbms_output.put_line(p_xland.v_val);
v_myval := p_xland.set_val('xland2');
dbms_output.put_line(p_xland.v_val);
dbms_output.put_line(v_myval);
end;


下面是执行结果:

xland
xland2
myreturnval


四:删除程序包

drop package body your_pb_name
drop package your_p_name
posted @   liulun  阅读(940)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示