Oracle的sql开发之包技术实战
前言: 包(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开发之包技术实战相关推荐
- oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...
87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...
- 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...
66.Oracle数据库SQL开发之 高级查询--使用线性回归函数 线性回归函数可以用普通最小平方回归曲线拟合一组数值对.线性回归函数可用于聚合.串口或报表函数. 如下图1: 例如: store@PD ...
- 19.Oracle数据库SQL开发之 笛卡尔积
19.Oracle数据库SQL开发之 笛卡尔积 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49107213 如果在多表查询中 ...
- oracle 窗口函数查询条件,62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数...
62.Oracle数据库SQL开发之 高级查询--使用分析函数之窗口函数 窗口函数可以计算一定的记录范围内.一定值域内.或者一段时间内的累积和以及移动平均值.查询返回一组记录,称为结果集.窗口这个术语 ...
- oracle报表查询sql,63.Oracle数据库SQL开发之 高级查询——使用报表函数
63.Oracle数据库SQL开发之 高级查询--使用报表函数 报表函数可用于执行跨越分组和组内分区的计算. 报表计算:SUM,AVG,MAX,MIN,COUNT,VARIANCE,STDDEV.可以 ...
- 129.Oracle数据库SQL开发之 数据库对象——其他有用的对象函数
129.Oracle数据库SQL开发之 数据库对象--其他有用的对象函数 1. IS OF函数 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/ ...
- 123.Oracle数据库SQL开发之 数据库对象——对象创建
123.Oracle数据库SQL开发之 数据库对象--对象创建 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50087023 ...
- 安卓开发的深度技术实战详解
文章目录 一.安卓开发的深度技术 二.总结 三.协程 四.数据库 总结 一.安卓开发的深度技术 Kotlin 语言 Kotlin 语言是一种功能强大.安全.简洁且互操作性良好的编程语言,由 JetBr ...
- Oracle的sql开发之存储过程实战
转载:http://blog.csdn.net/u013057786/article/details/17165623 1.定义所谓存储过程(Stored Procedure),就是一组用于完成特定数 ...
最新文章
- HDLBits 系列(36)Arbitration circuit implemented by FSM
- 北京语言大学计算机调剂,北京语言大学2019考研调剂通知
- [Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题...
- pythonrandom模块_python中的random模块
- python3中format方法_[翻译]python3中新的字符串格式化方法-----f-string
- 超励志!从中专生到教授,他32岁成为国家杰青!
- mysql 自增 不是主键_程序员经典面试题,MySQL自增主键为什么不连续
- 十三不香了?不止去掉刘海,iPhone14或改用QLC闪存:最高2TB容量
- html表单占位符,HTML5 输入表单动效 - 占位符上浮
- Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)
- 隔年增长的题_行测技巧:资料分析隔年增长问题
- FFmpeg mxf扩展hdr、bt2020
- Gradle 学习 ----Gradle 入门
- 杂记(梯度,散度,旋度)// kron函数 //numpy.clip()函数// if __name__ == '__main__'
- ST推出 28nm MCU ,NXP更狠,推出16nm MCU
- ListView--QQ联系人样式
- 词法解析器 | 从零实现一门语言
- html贝塞尔曲线在线,【HTML+js+纯前端】三次方贝塞尔曲线手工拟合小工具
- 【NVMe2.0b 16-1】Get Log Page
- 【实战】Windows 10 CodeSoft 6 条形码标签打印开发实战 【产品标签设计印刷】【Codesoft】