以下使用SQL Developer,使用Oracle SCOTT账号自带emp表,创建包。

1 在包中定义record类型,并在匿名块中调用
--在包中自定义类型
create or replace package my_bao
as
type emp_type is record(
    gh emp.empno%type,
    xm emp.ename%type,
    gz emp.sal%type
);
end;

创建之后刷新一下,左侧视图 程序包 下出来所创建内容;

2 调用,

declare
v1 my_bao.emp_type;
begin
select empno,ename,sal into v1 from emp where empno=7900;
dbms_output.put_line('工号='||v1.gh);
dbms_output.put_line('姓名='||v1.xm);
dbms_output.put_line('工资='||v1.gz);
end;

结果如下图;

如果DBMS输出中没有内容,点击上图中最右侧的像书的页的那个小图标,打开DBMS输出;

3 在包中定义过程hello和函数f_add(p1,p2)
--定义包规范
create or replace package my_bao2
as
type emp_type is record(
    gh emp.empno%type,
    xm emp.ename%type,
    gz emp.sal%type
);
procedure hello(p_name varchar2);
function f_add(p1 number,p2 number) return number;
end;

4 实现包规范,即包体(package body)
create or replace package body my_bao2
as
type emp_type is record(
    gh emp.empno%type,
    xm emp.ename%type,
    gz emp.sal%type
);
procedure hello(p_name varchar2)
as
begin
    dbms_output.put_line('hello,'||p_name);
end;

function f_add(p1 number,p2 number) return number
as
    v1 number;
begin
     v1:=p1+p2;
     return v1;
end;
end;

5 调用

select my_bao2.f_add(1,2) from dual;

6 调用

call my_bao2.hello('oracle');

7 包中重载方法
重载的要点就是名称一样,而参数的类型或者个数不同。
定义代码:
create or replace package my_bao3
as
function f_add(p1 number,p2 number) return number;
function f_add(p1 varchar,p2 varchar) return number;
end;

包体:

create or replace
package body my_bao3
as

function f_add(p1 number,p2 number) return number
as
    v1 number;
begin
     v1:=p1+p2;
     return v1;
end;

ction f_add(p1 varchar,p2 varchar) return number
as
    v1 number;
begin
     v1:=p1+p2;
     return v1;
end;
end;

8 调用

select my_bao3.f_add(1,2) from dual;

9 调用

select my_bao3.f_add('6','2') from dual;

oracle会根据参数类型自动选择调用哪个函数;

图解Oracle包实例相关推荐

  1. oracle包写入程序失败_Oracle内核技术揭秘第一篇

    蒋蒋~~大家吼啊,又是我,智商233的天才少呂,今天给大家带来的是数据库内核的介绍,包括实例,数据库本身的一些进程 Oracle Database,又名Oracle RDBMS,或简称Oracle是目 ...

  2. Oracle数据库实例之进程架构(二)

    Oracle数据库实例之进程架构(二) 必需的后台进程 PMON PMAN LREG SMON DBW LGWR CKPT MMON & MMNL RECO 可选的后台进程 ARCn CJQ0 ...

  3. Oracle数据库实例之内存架构(一)

    Oracle数据库实例之内存架构(一) Oracle数据库内存结构 基本内存结构 Oracle内存管理 用户全局区:UGA 程序全局区:PGA PGA的内容 专用和共享服务器模式下的PGA 系统全局区 ...

  4. Linux无界面新建Oracle数据库实例

    Linux无界面新建Oracle数据库实例 根据https://blog.csdn.net/qq_24058757/article/details/88220437 步骤操作后总结整理的自己的新建实例 ...

  5. oracle 包 被锁,Oracle包被锁定的原因分析及解决方案

    Oracle包被锁定的原因分析及解决方案 在数据库的开发过程中,经常碰到包.存储过程.函数无法编译或编译时会导致PL/SQL 无法响应的问题.碰到这种问题,基本上都要重启数据库解决,严重浪费开发时间. ...

  6. Oracle单实例通过DG迁移至RAC集群(Oracle 11g 超详细文档)

    实验:Oracle单实例通过DG迁移至RAC集群(Oracle 11g 超详细文档) 步骤1:Oracle单实例搭建 1. 系统环境检查 2. 创建用户.组,配置环境变量.安装目录 3. 安装Orac ...

  7. windows下一个,OracleServiceXXX和Oracle 关系实例

    其实,windows下的oracle,在oracle实例启动时,是全然依赖于 window服务中的OracleServiceXXX .这个XXX就是oracle的实例名(注意啊,不是数据库名称,而是实 ...

  8. 2. Oracle 数据库实例启动关闭过程

    转载自: http://blog.csdn.net/leshami/article/details/5542983 Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行 ...

  9. [na]tcpdump非常实用的抓包实例

    基本语法篇 常用应用:过滤物理口过滤某个port/ip/mac过滤协议显示ip/mac/port不解析等 过滤mac tcpdump -i eth0 ether host 24:DF:6A:F4:59 ...

最新文章

  1. 在Ubuntu 14.04 64bit上安装python-pyqt5软件包(python 2.7)
  2. Android CoordinatorLayout使用
  3. 撩课-Web大前端每天5道面试题-Day7
  4. VMplay CEO 艾奇伟:借鉴Docker思路 像投影仪一样将App投到云端
  5. K8s 文档增加反种族歧视声明 | 云原生生态周报 Vol. 54
  6. S3C6410 裸机硬件JPEG解码(转)
  7. 将VS2010的工程转换为VS2005,即用VS2005打开
  8. Halcon视觉框架+车牌识别+汉字识别+颜色识别+20200930
  9. OpenKG 祝大家 2021 新年快乐 —「2020 精选文章汇编」
  10. MathType求和符号中的黑三角该如何消除
  11. easyExcel导出下拉选择框,多sheet数据excle导入导出
  12. 360手机怎样更新系统版本android,360手机N5迎来安卓7.0稳定版升级
  13. 如何在Kubernetes中部署nginx
  14. AD与DNS集成,且有备份AD与DNS,主AD与DNS坏,备份DNS如何成为主
  15. 【MySQL】查看支持的字符集show character set;
  16. 罗技k380连接双系统(win10和ubuntu18)
  17. getInputStream() has already been called for this request
  18. 第4章 商业蜂窝通信系统的典范-GSM
  19. WordPress的最佳学习管理系统插件
  20. 机器学习-Logistic Regression(逻辑回归)原理

热门文章

  1. Examine Scheduling Policies
  2. jQuery 元素操作——遍历元素
  3. 理解java并发工具Phaser
  4. 全套CRC校验的算法
  5. pytorch tensor查找0_在PyTorch中Tensor的查找和筛选例子
  6. mesh三维画图[matlab]
  7. mysql innodb count_MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考
  8. 怎么把本地的项目同时提交到两个仓库
  9. webpack4.0 babel配置遇到的问题
  10. ASP.NET WebApi 基于分布式Session方式实现Token签名认证