- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PLSQL练习题一
PL/SQL练习题
Oracle中所有的过程都是以PL/SQL块开始的,掌握PL/SQL对于过程的开发是非常用用处的。
PL/SQL块的定义格式:
DECLARE
声明一些变量
BEGIN
程序的开发
EXCEPTION
程序中有可能出现异常
END ;
/ 范例:使用以上的语句,创建一个简单的程序块
DECLARE
i NUMBER ;
BEGIN
i:=30 ; -- 将变量i的内容设置成30
DBMS_OUTPUT.PUT_LINE(i的内容是: || i) ;
END ;
/ 以上一个基本的语句块已经写完了,但是里面并没有任何的输出,之所以这样,主要原因在于SQLPLUSW中的系统输出没有打开,需要通过以下的命令完成:
SET SERVEROUTPUT ON ; 以上是一个简单的语句块,但是在PLSQL块中也可以直接进行数据库的查询操作。
范例:要求输入一个雇员的编号,之后显示出此编号雇员的姓名
· 如果要想输入雇员编号的话,第八章存在一个替代变量“”
DECLARE
eno NUMBER ; -- 接收传入的编号
name VARCHAR2(8) ; -- 保存查询出来的雇员姓名
BEGIN
DBMS_OUTPUT.PUT_LINE(请输入雇员编号:) ;
eno:=empnonumber ;
SELECT ename INTO name FROM emp WHERE empno=eno ;
DBMS_OUTPUT.PUT_LINE(编号为 || eno ||的雇员姓名是: || name) ;
END ;
/ 此时已经可以查询出来了,但是以上的代码是否会存在其他问题呢?如果现在输入的编号不存在则有可能返回错误信息,那么为了让代码在出现错误之后依然可以正确的使用,则可以加入异常处理的操作机制。
DECLARE
eno NUMBER ; -- 接收传入的编号
name VARCHAR2(8) ; -- 保存查询出来的雇员姓名
BEGIN
DBMS_OUTPUT.PUT_LINE(请输入雇员编号:) ;
eno:=empnonumber ;
SELECT ename INTO name FROM emp WHERE empno=eno ;
DBMS_OUTPUT.PUT_LINE(编号为 || eno ||的雇员姓名是: || name) ;
EXCEPTION -- 当程序出现错误的时候执行此语句语句
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(没有这个员工!!!) ;
END ;
/ 但是,从以上的程序中可以发现,在SQLPLUSW中输出实际上并没有真正的意义,所以显示的格式也就没有必要做任何的调整。
在PL/SQL块中也可以编写循环、判断等语句。
可以使用循环操作:LOOP,循环
DECLARE
i NUMBER ;
BEGIN
i := 1 ; -- 给变量i一个初始值
LOOP
DBMS_OUTPUT.PUT_LINE(i = || i) ;
EXIT WHEN i=10 ;
i := i + 1 ;
END LOOP ;
END ;
/ 这个时候一个循环语句就已经编写完成了。此循环属于先执行后判断,所以可以使用另外一种循环语句:WHILE…LOOP。
DECLARE
i NUMBER ;
BEGIN
i := 1 ; -- 给变量i一个初始值
WHILE(i=10) LOOP
DBMS_OUTPUT.PUT_LINE(i = || i) ;
i := i + 1 ;
END LOOP ;
END ;
/ 那么,此种循环操作属于先判断后执行。
在PL/SQL中也可以使用FOR循环方式
DECLARE
i NUMBER ;
BEGIN
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i = || i) ;
END LOOP ;
END ;
/ PLSQL中同样存在IF语句,执行条件的分支操作。
范例:给定一个值,要求判断其是否大于10,如果大于,则显示记录大于10条
DECLARE
coun NUMBER ;
BEGIN
coun := 11 ;
IF coun10 THEN
DBMS_OUTPUT.PUT_LINE(记录大于10条) ;
END IF ;
END ;
/ 但是,以上的内容都属于固定好的结果,现在要求可以将emp表中的记录数进行验证。
DECLARE
coun NUMBER ;
BEGIN
SELECT COUNT(empno) INTO coun FROM emp ;
IF coun10 THEN
DBMS_OUTPUT.PUT_LINE(记录大于10条) ;
END IF ;
EN
文档评论(0)