- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLSQL程序设计幻灯片
建立对象表封装属性和方法实例 CREATE or replace TYPE employee_type AS OBJECT ( empno number(5), ename varchar2(10), hiredate date, MEMBER FUNCTION days_at_company RETURN number, PRAGMA RESTRICT_REFERENCES (days_at_company,wnds,wnps) ); / 定义对象数据类型 可以使用PRAGMA编译指令通知PL/SQL编译器禁止某方法对数据库表和包中的变量读写, 当方法体中出现违反情况时, 编译出错。 格式: PRAGMA RESTRICT_REFERENCES ( function_name, WNDS [, WNPS] [, RNDS] [, RNPS] ); WNDS 不允许写数据库 RNDS 不允许读数据库 WNPS 不允许改程序包变量 RNPS 不允许引用程序包变量 CREATE or replace TYPE BODY employee_type AS MEMBER FUNCTION days_at_company RETURN NUMBER IS BEGIN RETURN floor(sysdate - hiredate); END; END; / 2.定义对象类型的成员方法 3. 建立对象表 CREATE TABLE employees OF employee_type ; 4. 插入数据 INSERT INTO employees VALUES(1,‘Jone’,‘10-10月-1989’); INSERT INTO employees VALUES(2,‘smith’,‘10-10月-1997’); INSERT INTO employees VALUES(3,king,1-1月-2000); 5. 获取对象表数据 select * from employees; 输出结果: EMPNO ENAME HIREDATE 1 Jone 10-10月-89 2 smith 10-10月-97 3 king 01-1月 -00 定义别名存取对象方法 select e.days_at_company() from employees e where e.empno=3; 输出结果: E.DAYS_AT_COMPANY() 296 select e.empno,e.ename,e.hiredate,e.days_at_company() from employees e; --输出结果: EMPNO ENAME HIREDATE E.DAYS_AT_COMPANY() 1 Jone 10-10月-89 4031 2 smith 10-10月-97 1109 3 king 01-1月 -00 296 定义别名存取对象的属性和方法 本周课后作业: 1. 编写一个触发器, 保证每个职工的工资在工资级别表(salgrade)的有效取值范围内. 2. 写一个为指定的职工增加奖金(comm) 20%的存储过程 作业要求: 调试通过后4月15日以前在机房检查完以后上载到网络辅助教学系统. 触发器的类型 1.语句级触发器 在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行 。 2.行级触发器for each row 触发语句作用的每一条记录都被触发。在行级触发器中使用old和new伪记录变量, 识别值的状态. 触发语句与伪记录变量 触发语句 :old :new insert 所有字段都是空(null) 将要插入的数据 Update 更新以前该行的值 将要更新的值 Delete 删除以前该行的值 所有字段都是空(null) l????
文档评论(0)