《Oracle 10g管理及应用》练习答案-第九章 PL/SOL程序设计
Oracle第9章习题

第9章系统安全管理一.填空题1.在Oracle数据库中的权限可以分为两类,即()和()。
()是指在系统级控制数据库的存取和使用的机制,()是指在对象级控制数据库的存取和使用的机制。
2.()是具有名称的一组相关权限的组合。
3.()和()角色包含CREATE TYPE系统权限,()角色包含所有的权限。
4.连接到数据库的最低系统预定义角色是()。
5.在用户连接到数据库后,可以查询数据字典视图(),了解用户所具有的系统权限。
二.选择题1.假设用户USER1的默认表空间为USERS,他在该表空间的配额为10MB,则USER1在USERS表空间中创建基本表时,他应具有什么权限?()A.CREATE TABLEB.CREATE USERC.UNLIMITED TABLESPACED.LIMITED TABLESPACE2.下列那一项资源不能在用户配置文件中限定?()A.各个会话的用户数B.登陆失败的次数C.使用CPU时间D.使用SGA区的大小3.检查下面的SQL语句,哪一项是错误的?()alter user tempuseridentified by oracledefault tablespace usersdefault temporary tablespace tempquota 100M on users;A.alter user tempuserB.default temporary tablespace tempC.quota 100M on users;D.identified by oracle4.如果想要在另一个模式中创建表,用户最少应该具有什么系统权限?()A.CREATE TABLEB.CREATE ANY TABLEC.RESOURCED.DBA5.下列关于资源配置文件的描述中,哪一项是正确的?()A.无法通过资源配置文件来锁定用户账号B.无法通过资源配置文件来限制用户资源C.DBA可以通过资源配置文件来改变用户密码D.DBA可以通过资源配置文件来设置密码的过期时限6.假设用户A将SELECT ANY TABLE权限授予用户B,并且使用ADMIN OPTION选项;用户B 又将SELECT ANY TABLE权限授予了用户C,那么DBA收回用户A的SELECT ANY TABLE权限后,下列还有那些用户将会失去这个权限?()A.只有用户B失去B.只有用户C失去C.用户B与用户C都失去D.没有任何用户失去7.通过查询数据字典SESSION_PRIVS,能够获得下列哪项信息?()A.授予当前用户的所有对象权限B.授予当前用户的所有系统权限C.授予当前用户的所有对象权限和系统权限D.当前会话所具有的所有对象权限和系统权限8.下面哪一个不是系统权限?()A.SELECT TABLEB.ALTER TABLEC.SYSDBAD.CREATE INDEX9.下面哪个系统预定义角色允许一个用户创建其他用户?()A.CONNECTB.DBAC.RESOURCED.SYSDBA10.如果要启用所有角色,则应该使用那一条命令?()A.SET ROLE ALLB.SET ROLE ENABLE ALLC.ALTER SESSION ALLD.ALTER USER ROLE ALL三.简答题1.概要文件可以对系统的哪些资源进行限制?2.简述向用户授予系统权限时,使用WITH GRANT OPTION和使用WITH ADMIN OPTION 的区别。
最新Oracle11g数据库基础教程课后习题答案

Oracle11g数据库基础教程参考答案第5章数据库存储设置与管理P70.实训题(8)为USERS表空间添加一个数据文件,文件名为USERS05.DBF,大小为5 0MB。
ALTER TABLESPACE USERS ADD DATAFILE‘D:\ORACLE\ORADATA\ORCL\%users05.dbf’ SIZE 50M;(9)为EXAMPLE表空间添加一个数据文件,文件名为example05.dbf,大小为20MB。
ALTER TABLESPACE EXAMPLEADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example05.dbf’ SIZE 20M;(10)修改USERS表空间中的userdata05.dbf为自动扩展方式,每次扩展5MB,最大为100MB。
ALTER DATABASE DATAFILE‘D:\ORACLE\ORADATA\ORCL\%userdata05.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M;(14)为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo5a.log和redo5b.log,大小分别为5MB。
ALTER DATABASE ADD LOGFILE GROUP 5(‘D:\ORACLE\ORADATA\ORCL\redo5a.log’,‘D:\ORACLE\ORADATA\ORCL\redo5b.log’)SIZE 5M;(15)为新建的重做日志文件组添加一个成员文件,名称为redo5c.log。
ALTER DATABASE ADD LOGFILE MEMBER‘D:\ORACLE\ORADATA\ORCL\redo5c.log’ TO GROUP 5;(16)将数据库设置为归档模式,并采用自动归档方式。
SHUTDOWN IMMEDIATE STARTUP MOUNTALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;ALTER SYSTEM ARCHIVE LOG START(8)ALTER TABLESPACE USERSADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata05.dbf’ SIZE 50M’;(9)ALTER TABLESPACE EXAMPLEADD DATAFILE ‘D:\ORACLE\ORADATA\ORCL\example05.dbf’ SIZE 20M’;(10)ALTER DATABASE DATAFILE ‘D:\ORACLE\ORADATA\ORCL\userdata05.dbf’ AUTOEXTEND ON NEXT 5M MAXSIZE 100M;(14)ALTER DATABASE ADD LOGFILE GROUP 5(‘D:\ORACLE\ORADATA\ORCL\redo05a.log’,’D:\ORACLE\ORADATA\ORCL\redo05b.log’)SIZE 5M;(15)ALTER DATABASE ADD LOGFILE MEMBER‘D:\ORACLE\ORADATA\ORCL\redo05c.log’ TO GROUP 5;(16)SHUTDOWN IMMEDIATESTARTUP MOUNTALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;ALTER SYSTEM ARCHIVE LOG START第6章数据库对象的创建与管理2.实训题(2)Create table exer_class(CNO number(2) primary key,CNAME varchar2(20),NUM number(3))Create table exer_student(SNO number(4) primary key,SNAME varchar2(10) unique,SAGE number,SEX char(2),CNO number(2))(3)Alter table exer_student add constraint ck_sage check (sage>0 and sage<=100);(4)alter table exer_student add constraint ck_stu check(sex='M' or sex='F')modify sex default 'M'(5)Create unique index ind_cname on exer_class(cname);(6)Create view s_c asSelect sno,sname,sage,sex,o,cname,numFrom exer_class c join exer_student sOn o=o;(7)Create sequence sequ1 start with 100000001;(8)create table exer_student_range(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by range(sage)(partition part1 values less than(20) tablespace example,partition part2 values less than(30) tablespace orcltbs1,partition part3 values less than(maxvalue) tablespace orcltbs2)(9)create table exer_student_list(sno number(4) primary key,sname varchar2(10),sage number,sex char(2),cno number(2))partition by list(sex)(partition man values('M') tablespace orcltbs1,partition woman values('F') tablespace orcltbs2)(10)Create index ind on exer_student_range(sno) local;第9章PL/SQL语言基础1.实训题(1)declarecursor c_emp is select * from employees;beginfor v_emp in c_emp loopdbms_output.put_line(v_emp.first_name||' '||v_st_name||' '|| v_emp.employee_id||' '||v_emp.salary||' '||v_emp.department_id); end loop;end;(2)declarev_avgsal employees.salary%type;beginfor v_emp in (select * from employees) loopselect avg(salary) into v_avgsal from employeeswhere department_id=v_emp.department_id;if v_emp.salary>v_avgsal thendbms_output.put_line(v_emp.first_name||' '||v_st_name||' '|| v_emp.employee_id||' '||v_emp.salary||' '||v_emp.department_id);end if;end loop;end;(3)declarecursor c_emp isselect e.employee_id eid,st_name ename,e.department_id edid,m.employee_id mid,st_name mnamefrom employees e join employees mon e.manager_id=m.employee_id;v_emp c_emp%rowtype;beginopen c_emp;loopfetch c_emp into v_emp;exit when c_emp%notfound;dbms_output.put_line(v_emp.eid||' '||v_emp.ename||' '||v_emp.edid||' '||v_emp.mid||' '||v_emp.mname);end loop;close c_emp;end;(4)declarev_emp employees%rowtype;beginselect * into v_emp from employees where last_name='Smith';dbms_output.put_line(v_emp.employee_id||' '||v_emp.first_name||' '||v_st_name||' '||v_emp.salary||' '||v_emp.department_id); exceptionwhen no_data_found theninsert into employees(employee_id,last_name,salary,email,hire_date, job_id,department_id)values(2010,'Smith',7500,'*****************.cn',to_date('2000-10-5','yyyy-mm-dd'),'AD_VP',50);when too_many_rows thenfor v_emp in(select * from employees where last_name='Smith')loopdbms_output.put_line(v_emp.employee_id||' '||v_emp.first_name||' '||v_st_name||' '||v_emp.salary||' '||v_emp.department_id);end loop;end;第10章PL/SQL程序设计(1)创建一个存储过程,以员工号为参数,输出该员工的工资。
《Oracle10g入门与提高》第9章安全管理精品PPT课件

9
…
…
11.10.2020
户将受到的限制
➢ 可以建立任意数目的并发的会话连接
➢ 在单独的一次会话中,不受限制地使用CPU任意长的 时间
➢ 一次单独调用不得使用CPU 30秒钟以上
➢ 一次单独的会话连接不得超过45分钟
➢ 在一次单独的会话中,从内存中和磁盘中读取的数据 块的数目限制遵照默认用户配置文件的规定
SYSTEM 用户用于创建显示管理信息的其他表和视图,以 及各种 Oracle 组件和工具使用的内部表和视图。安全 管理员必须严格控制此类重要账户
SYSMAN
SYSMAN 用户代表 Oracle企业管理器超级管理员账户, 可以创建和修改其他 企业管理器管理员账户,并可以 管理数据库实例本身
11
11.10.2020
9.1.1 用户认证
➢ 认证合法用户的方式。 ➢ 数据库认证(database authentication) ➢ 外部认证(external authentication) ➢ 全局认证(global authentication) ➢ 代理认证(proxy authentication)
5
11.10.2020
9.1.4 默认的数据库用户
参数名称 DBSNMP
说明
企业管理器使用 DBSNMP 用户来监视数据库,访问有关 数据库的性能统计信息。DBSNMP 身份证明有时称为 监视身份证明
12
11.10.2020
9.1.5 修改用户账号
➢ 语法
ALTER USER 用户名
IDENTIFIED { BY 密码 | EXTERNALLY | GLOBALLY AS '外部名'}
9.2.1 数据库权限的种类
Oracle-10g数据库基础-参考答案课案

Oracle数据库基础教程参考答案第1章Oracle数据库概述1.简答题(1)数据是描述事物的符号,是数据库中存储的基本对象。
在计算机中,用记录的形式来描述数据。
数据与数据的解释即数据的语义是紧密结合的。
数据库是指按一定的数据模型组织、描述和存储的数据的集合。
数据库管理系统是位于操作系统与用户之间的一层数据管理软件。
数据库系统是指数据库、数据库管理系统与计算机系统的结合。
通常,在不引起混淆的情况下将数据库系统简称为数据库。
(2)数据库管理系统的主要功能包括:数据定义、数据操纵、数据库运行与控制、数据库建立与维护、数据字典定义以及数据通信等。
数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译处理层、数据存取层、数据存储层、操作系统以及数据库组成。
(3)数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。
(4)概念模型是用简单、清晰、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。
它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。
组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。
(5)E-R图由3个要素组成:实体、联系与属性。
实体之间的联系有1:1、1:n、n:n三种类型。
(6)Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。
(7)目前市场上常见的关系数据库管理系统包括Oracle、DB2、Sybase和SQL Server等。
Oracle是当今最大的数据库厂商Oracle公司的数据库产品。
它是世界上第一个商品化的关系型数据库管理系统,也是第一个推出与数据库结合的第四代语言开发工具的数据库产品。
DB2是IBM公司于1983年推出的一个商业化关系数据库管理系统,它是基于System R 基础上实现的。
Oracle11g数据库管理与开发基础教程课后习题及答案

Oracle11g数据库管理与开发基础教程课后习题及答案第⼀章选择题1、Oracle数据库服务器包含的两个主要组件是(AB)A、Oracle实例B、oracle数据库C、内存结构D、后台进程2、create database 创建Oracle数据库时创建的⽂件包括(AC)A、数据⽂件B、控制⽂件C、⽇志⽂件D、初始化参数⽂件3、创建Oracle数据库时,createdatabase语句中指出了需要创建的数据⽂件、⽇志⽂件存储路径和名称,但没有指出需要创建的控制⽂件,因此创建数据库之前需要创建(D)个控制⽂件。
A、0B、1C、2D、任意数量4、调⽤shutdown命令关闭Oracle数据库后,以下(D)命令关闭的数据库处于不⼀致状态。
A、shutdown normalB、shutdown transactionalC、shutdown immediateD、shutdown abort5、作为普通⽤户,只有当数据库处于以下(C)状态下才可连接访问。
A、NUMOUNTB、MOUNTC、OPEND、CLOSE填空题1、SGA可分为以下⼏种主要区域:(SGA固定)、(数据库缓冲区缓存)、(重做⽇志缓冲区)、(共享池)等。
2、Oracle实例有多种后台进程,其中每个数据库实例上必须启动的后台进程包括(数据库写⼊进程)、(⽇志写⼊进程)、(检查点进程)、(进程监视进程)、(系统监视进程)等。
3、Oracle数据库的逻辑存储结构是(表空间)、(段)、(区)、(数据块)等。
4、Oracle数据库逻辑上的表空间结构与磁盘上的物理(数据)⽂件相关联。
5、下⾯连接字符串采⽤的是(简易连接)命名⽅式。
CONNECT Scott/tiger@dbs:1525@/doc/727db4ff03768e9951e79b89680203d8ce2f6aac.html编程题1.写出以下操作的SQL*PLUS命令语句:先启动Oracle实例到“已启动实例状态”,再修改Oracle实例到“数据库已装载状态”,最后修改Oracle实例到打开状态。
Oracle相关练习题(doc 7页)

Oracle相关练习题(doc 7页)一、填空1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。
2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。
4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。
5.Where子句可以接收From子句输出的数据,而HA VING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。
6.在SQL语句中,用于向表中插入数据的语句是Insert。
7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select语句。
8.使用Describe命令可以显示表的结构信息。
9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。
10.使用Save命令可以将缓冲区中的SQL命令统将使用下列哪一个进程来释放它所占用的资源?( D )A.DBWR B.LGWR C.SMON D.PMON3. 如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图?( A )A. DBA视图B. ALL视图C. USER视图D. 动态性能视图4. 下列哪一项是Oracle数据库中最小的存储分配单元? ( C )A. 表空间B. 段C. 盘区D. 数据块5. 下面的各选项中哪一个正确描述了Oracle数据库的逻辑存储结构? ( A )A. 表空间由段组成,段由盘区组成,盘区由数据块组成B. 段由表空间组成,表空间由盘区组成,盘区由数据块组成C. 盘区由数据块组成,数据块由段组成,段由表空间组成D. 数据块由段组成,段由盘区组成,盘区由表空间组成6. 下列的哪个子句在SELECT语句中用于排序结果集?( D )A. Having子句B. Where子句C. From子句D. Order by子句7. Having子句的作用是( B )。
《Oracle 10g管理及应用》 第九章 PL/SOL程序设计
Oracle 10g管理及应用
2020年1月10日星期五
9.2 PL/SQL控制结构
9.2.1 9.2.2 9.2.3 9.2.4
顺序结构 选择结构 NULL结构 循环结构
Oracle 10g管理及应用
2020年1月10日星期五
9.2.1 顺序结构
在设计PL/SQL的顺序结构过程中,主要注意设计程序执 行过程语句的先后顺序,以代码编写的先后次序来控制语句 的执行,如下例所示: CREATE OR REPLACE PROCEDURE my_first_proc IS
示例 以下为声明一个变量,变量名为greetingMSG,变量 的数据类型为VARCHAR2,长度为50:
greetingMSG VARCHAR2(50);
示例 以下为声明一个常量,常量名为PI,数据类型为
NUMBER,默认值为3.14159,常量在声明时就要赋值,并且
在程序块中不能再次修改值:
PI NUMBER := 3.14159;
Oracle 10g管理及应用
2020年1月10日星期五
9.1.2 数据类型
PL/SQL中除了可以使用基本数据类型,其中应用最多的为VARCHAR2、 NUMBER、DATE和BOOLEAN四种。
函数
TO_CHAR TO_DATE TO_TIMESTAMP TO_NUMBER HEX_TO_RAW RAW_TO_HEX TO_BINARY_FLOAT TO_BINARY_DOUBLE TO_LOB TO_BLOB TO_CLOB TO_NCLOB Oracle 10g管理及应用
说
明
转换为CHAR类型
转换为DATE类型
转换成TIMESTAMP类型
《数据库管理系统应用》第九章课后习题答案
第九章模块与VBA程序设计课后习题答案(P324)一、选择题:1~5. AADCA 6~10.CBDBA 11~15. BDDBB16~20. CADBC 21~26. DDDACD二、填空题:1. Visual Basic for Applications2. Sub;Function3. Dim4. 局部变量;模块变量;全局变量5. Dim或Private ;Public6. Static7. Type…End Type8. 选择结构;循环结构9. IIF();Switch();Choose() 10. 判定输入的数据是否为日期型数据11. Byval;传址调用12. On Error 13. 用于关闭错误处理14. 系统忽略错误,且继续处理随后的指令15. 用于接收用户从键盘输入的内容;MsgBox16. #或Double 17. 条件18. -1;019. Int(61*rnd()+15) 20. 计时器触发或Timer 21. OpenForm 22. 事件过程23. 计时器间隔或TimerInterval 24. MsgBox;False 25. Me.TimerInterval=0;close;i 26. MsgBox “数据处理结束!”,,”消息”27. X>=7 28. 5 29. 12 30. 9 31. 及格32. num;i 33. X=s;s=”0001”;Dim mc as New MyClass34. DAO;ADO 35. DBEngine36. CurrentDb();CurrentProject.Connection37. WorkSpace;Database;Field 38. Connection;RecordSet;Field;Command 39. Eof;StrSQL 40. Null或空值;从指定的记录集中检索特定字段的值- 1 -。
《Oracle数据库应用与实践》课后习题参考答案
活塞
1990
公牛
1991
公牛
1992
公牛
1993
火箭
1994
火箭
1995
公牛
1996
公牛
1997
公牛
1998
马刺
1999
湖人
2000
湖人
2001
湖人
2002
马刺
2003
活塞
2004
马刺
2005
热火
2006
马刺
2007
凯尔特人
2008
湖人
2009
湖人
2010
请写出一条 SQL 语句,查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间
emp ) e where e.t<=3) group by deptno
Oracle 数据库应用与实践
3、表 nba 记录了 nba(team VARCHAR2(10),y NUMBER(4))夺冠球队的名称及年份:
TEAM
Y
-------------------- ------------------------------
第 5 章 Oracle 模式对象
一、填空题
1. 字段级约束 表约束
2. NOT NULL 约束 UNIQUE 约束 PRIMARY KEY 约束
束
3. CREATE TABLE
CREATE ANY TABLE
4. UNIQUE PRIMARY KEY CHECK
5. 合并索引 重建索引
6. user_updatable_columns
2、某 cc 表数据如下: c1 c2 -------------1西 1安 1的 2天 2气
ORACLE 10g 课后参考答案
ORACLE 10g 课后参考答案(答案仅供参考)第一章ORACLE 10g简介一、选择题1.下面不属于ORACLE 10g产品系列的是(D)A.Oracle数据库10g标准版1B.Oracle数据库10g标准版C.Oracle数据库10g企业版D.Oracle数据库10g网络版2.ORACLE 10g中的g表示(D)A.版本B.网络C.数据库D.网格计算3.下面关于ORACLE 10g数据库逻辑结构的描述错误的是(C)A.数据库由若干个表空间组成B.表空间由表组成C.表由数据块组成D.段由区间组成4.ORACLE管理数据库存储空间的最小存储单位是(A)A.数据块B.表空间C.表D.区间5.ORACLE分配磁盘空间的最小单位是(D)A.数据块B.表空间C.表D.区间6.下列不属于ORACLE表空间的是(D)A.大文件表空间B.系统表空间C.撤销表空间D.网格表空间7.当数据库服务器上的一个数据库启动时,ORACLE将分配一块内存区间,叫做系统全局区,英文缩写为(B)A.VGAB.SGAC.PGAD.GLOBAL二、填空题1.__视图__ 是虚拟的表,它在物理上并不存在。
可以把它看成是一个存储的查询。
2.创建___索引__可以提高读取数据的效率。
它的功能类似于书的目录,读者可以通过目录很快的在书中找到需要的内容。
3.有些表共享公共的列,并经常被同时访问,为了提高数据存取效率,把这些表在物理上存储在一起,得到的表的组合就是____簇____。
4.一个数据块对应磁盘上的一定数量的数据库空间,标准的数据块大小由初始参数(DB_BLOCK_SIZE )指定。
5.每个数据库都至少有一个系统表空间,被称为__SYSTEM_表空间。
6.每个ORACLE数据库都由3种类型的文件组成:数据文件、日志文件、控制文件。
7.ORACLE有两种内存结构,即_系统全局区_和_程序全局区_。
三、简答题1.简述ORACLE数据库逻辑结构中各要素之间的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章PL/SOL程序设计
习题
1.变量的名称必须遵循一定的规定,这此规定如下:
●变量名必须以字母开头,由字母、数字、下划线、美元和英镑符号等特殊符号组成,
但最好不要用中文。
●变量名不区分大小写。
●变量名最长为30个字符。
●变量名中不能包括任何形式的空白(如空格或制表符等)。
●不能使用SQL或PL/SQL的保留字为变量名,因为它们对于SQL和PL/SQL有特
殊含义。
2.PL/SQL具有一般过程化语言的特征,有顺序结构、选择结构、循环结构以及GOTO跳转结构等各种结构。
3.在PL/SQL程序中,由于常需要把表中的数据读取到指定的变量中,为了使变量的数据类型和表中的对应列的数据类型一致,可以直接通过%TYPE引用表中指定列的数据类型,这样一旦表中指定列的数据类型被修改,则在程序执行时,将自动引用新的对应数据类型,因此,应用%TYPE可以不必知道变量对应列的数据类型,同时,可以使程序运行时自动适应对应列的数据类型。
通过记录类型可以方便地一次读取多列的数据到指定的变量中,当需要一次性的读到所有列数据到变量中时,定义记录类型将比较麻烦,此时可以应用PL/SQL提供的%ROWTYPE技术来自动提取表中行的结构信息,并自动生成对应的行数据类型。
4.在通过游标对表的行数据进行处理的操作过程,主要包括以下四步:声明游标、打开游标、提取数据和关闭游标。
声明游标的语法格式如下所示:CURSOR 游标名IS SELECT语句
打开游标使用OPEN语句,OPEN 游标名;
提取数据的命令为FETCH,FETCH 游标名INTO 变量1, 变量2, ……
关闭游标使用CLOSE语句,CLOSE 游标变量名;
5.触发器(Trigger)是一种特殊类型的PL/SQL程序块。
触发器的结构与过程和函数相类似,包括:声明部分、执行部分和异常处理部分。
触发器创建后,将存储在数据库服务器中,当触发器对应的事件发生时,将会自动被触发而执行相应的操作。
触发器主要分成:DML触发器、DDL触发器以及系统触发器,DML触发器中又主要包括:行级触发器、语句级触发器以及替换触发器(INSTEAD OF触发器)。
6.PL/SQL程序运行过程中,可能发生各种情况的异常,在程序发生异常后,如果不进行处理,程序的运行将被中止。
为处理程序异常,Oracle提供了系统预定义异常和用户自定义异常两种类型的异常以及异常处理技术。
异常处理的语法格式如下所示:
EXCEPTION
WHEN 异常类型1 [OR 异常类型2] THEN
异常处理代码;
…
WHEN 异常类型n THEN
异常处理代码;
WHEN OTHERS THEN
其他类型异常的处理代码;
注意,异常处理程序块放置在PL/SQL程序块的最后。
7.过程的调用前,必须先在服务器中创建好,创建过程的语法格式如下所示:CREATE [OR REPLACE] PROCEDURE 过程名
[参数1 [{IN | OUT | IN OUT}] 类型,
参数2 [{IN | OUT | IN OUT}] 类型……]
{IS | AS}
BEGIN
--过程体内的执行语句;
[EXCEPTION
--异常处理程序]
END [过程名];
函数和过程一样,是存储地数据库中的PL/SQL程序,函数与过程的最大区别在于函数通过RETURN语句返回一个返回值,此外,调用函数时,将把函数用在表达式中进行调用。
创建函数的基本语法和过程相似,语法如下所示:
CREATE OR RELACE FUNCTIONI 函数名
[参数1 {IN | OUT | IN OUT} 类型,
参数2 {IN | OUT | IN OUT} 类型, ……]
RETURN 返回类型
{ IS | AS}
[变量声明]
BEGIN
--函数体
END [函数名];。