前言: 包(package)的主要作用是用于逻辑组合相关的pl/sql类型,比如记录类型或者集合类型,pl/sql游标或者游标声明以及pl/sql子程序,还可以包含任何可以在块的声明区中定义的变量。一旦创建了一个包,包就会被存储在Oracle数据库中。可以将包放到共享池中,以便被多个应用程序共享和调用。一个pl/sql包包括包规范和包体两部分。平时调试经常使用的dbms_output就是oracle的一个系统包。

    一>一个简单的包的包规范和包体小例子

create or replace package emp_pkg as-----定义集合类型type emp_tab is table of emp%rowtype index by binary_integer;-----在包规范中定义一个记录类型type emprectyp is record(emp_no number,sal number);----定义一个游标申明cursor desc_salary return emp;----定义雇佣员工的过程procedure hire_employee(p_empno number,p_ename varchar2,p_job varchar2,p_mgr number,p_sal number,p_comm number,p_deptno number);-----定义解雇员工的过程procedure fire_employee(p_emp_id number);
end emp_pkg;create or replace package body emp_pkg
as-----定义游标申明的游标体cursor desc_salary return emp is select * from emp order by sal desc;-----定义雇佣员工的具体实现procedure hire_employee(p_empno number,p_ename varchar2,p_job varchar2,p_mgr number,p_sal number,p_comm number,p_deptno number) isbegininsert into emp (empno) values('3360');end;----定义解雇员工的具体实现procedure fire_employee(p_emp_id number) isbegin----从emp表中删除员工信息delete from emp where empno=p_emp_id;end;
end emp_pkg;

    二>dbms_job包创建定时任务使用

create table t(id varchar2(30),name varchar2(30)
);
create or replace procedure proce_t is
begininsert into t(id, name) values('1', to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'));commit;
end proce_t;
/
declarejobno number;
begindbms_job.submit(jobno,'proce_t;',sysdate,'sysdate+1/24/60');commit;
end;
select * from user_jobs;
select * from t;

转载于:https://blog.51cto.com/11218855/2328101

Oracle的sql开发之包技术实战相关推荐

  1. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  2. 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...

    66.Oracle数据库SQL开发之 高级查询--使用线性回归函数 线性回归函数可以用普通最小平方回归曲线拟合一组数值对.线性回归函数可用于聚合.串口或报表函数. 如下图1: 例如: store@PD ...

  3. 19.Oracle数据库SQL开发之 笛卡尔积

    19.Oracle数据库SQL开发之 笛卡尔积 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49107213 如果在多表查询中 ...

  4. oracle 窗口函数查询条件,62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数...

    62.Oracle数据库SQL开发之 高级查询--使用分析函数之窗口函数 窗口函数可以计算一定的记录范围内.一定值域内.或者一段时间内的累积和以及移动平均值.查询返回一组记录,称为结果集.窗口这个术语 ...

  5. oracle报表查询sql,63.Oracle数据库SQL开发之 高级查询——使用报表函数

    63.Oracle数据库SQL开发之 高级查询--使用报表函数 报表函数可用于执行跨越分组和组内分区的计算. 报表计算:SUM,AVG,MAX,MIN,COUNT,VARIANCE,STDDEV.可以 ...

  6. 129.Oracle数据库SQL开发之 数据库对象——其他有用的对象函数

    129.Oracle数据库SQL开发之 数据库对象--其他有用的对象函数 1.  IS OF函数 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/ ...

  7. 123.Oracle数据库SQL开发之 数据库对象——对象创建

    123.Oracle数据库SQL开发之 数据库对象--对象创建 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50087023 ...

  8. 安卓开发的深度技术实战详解

    文章目录 一.安卓开发的深度技术 二.总结 三.协程 四.数据库 总结 一.安卓开发的深度技术 Kotlin 语言 Kotlin 语言是一种功能强大.安全.简洁且互操作性良好的编程语言,由 JetBr ...

  9. Oracle的sql开发之存储过程实战

    转载:http://blog.csdn.net/u013057786/article/details/17165623 1.定义所谓存储过程(Stored Procedure),就是一组用于完成特定数 ...

最新文章

  1. HDLBits 系列(36)Arbitration circuit implemented by FSM
  2. 北京语言大学计算机调剂,北京语言大学2019考研调剂通知
  3. [Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题...
  4. pythonrandom模块_python中的random模块
  5. python3中format方法_[翻译]python3中新的字符串格式化方法-----f-string
  6. 超励志!从中专生到教授,他32岁成为国家杰青!
  7. mysql 自增 不是主键_程序员经典面试题,MySQL自增主键为什么不连续
  8. 十三不香了?不止去掉刘海,iPhone14或改用QLC闪存:最高2TB容量
  9. html表单占位符,HTML5 输入表单动效 - 占位符上浮
  10. Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)
  11. 隔年增长的题_行测技巧:资料分析隔年增长问题
  12. FFmpeg mxf扩展hdr、bt2020
  13. Gradle 学习 ----Gradle 入门
  14. 杂记(梯度,散度,旋度)// kron函数 //numpy.clip()函数// if __name__ == '__main__'
  15. ST推出 28nm MCU ,NXP更狠,推出16nm MCU
  16. ListView--QQ联系人样式
  17. 词法解析器 | 从零实现一门语言
  18. html贝塞尔曲线在线,【HTML+js+纯前端】三次方贝塞尔曲线手工拟合小工具
  19. 【NVMe2.0b 16-1】Get Log Page
  20. 【实战】Windows 10 CodeSoft 6 条形码标签打印开发实战 【产品标签设计印刷】【Codesoft】

热门文章

  1. libcurl curl_easy_setopt函数以及设置选项
  2. Ubuntu系统下载地址(Ubuntu、ISO、Ubuntu下载)
  3. KVM 虚拟机 调整内存与CPU
  4. C/C++ 去掉字符串首位的空格字符
  5. 双向循环链表:字母表实现前后移动
  6. 在阿里云服务器centOs7系统中部署.NET Core项目
  7. python3.x+requests 爬取网站遇到中文乱码的解决方案
  8. 《从入门到精通云服务器》-4
  9. Party Lamps chapter 2.2
  10. live555学习笔记3-消息循环