PLSQL在Oracle中如何使用

分类:编程技术 时间:2024-02-20 15:24 浏览:0 评论:0
0
Oracle中如何使用PLSQL?针对这个问题,本文详细介绍了相应的分析和解答,希望能够帮助更多想要解决这个问题的朋友找到更简单、更容易的方法。

Oracle基础PLSQL使用示例详解

PL/SQL块是在SQL语言上开发的应用程序,可以集中处理各种复杂的SQL运营。

构成:

DECLARE:声明部分 BEGIN 编写主题 EXCEPTION 捕获异常 END;

<强>1。一个简单的 PL/SQL 块

DECLARE i number;开始我:=30; DBMS_OUTPUT.put_line( 'i 的内容为:'||i); END;

此时直接执行程序即可。

执行后发现没有任何输出。因为Oracle在系统设置中默认设置不显示输出,所以如果想显示则输入以下内容ng 命令:
设置服务器输出打开;如果您使用Toad,则可以在Desktop中选择PLSQL并打开DBMS OUTPUT。

有异常的语句块

DECLARE i number;开始 i:=1/0; EXCEPTION 当 ZERO_DIVIDE 时 DBMS_OUTPUT.put_line("有异常"); END;

注意:输出字符串应使用单引号Number''。

2. PL/SQL 块还可以接收来自用户的输入信息。比如现在要求用户输入一个员工编号,然后根据输入的内容进行查询,查询该员工的姓名。 。

用户输入信息使用“&”完成

DECLARE eno number; zh_cn varchar(20); BEGIN --输入的信息保存在eno eno:=&no;中--然后根据eno的值查询数据库。从 emp 选择 ename 到 en,其中 empno = eno; DBMS_OUTPUT.put_line('电话号码是:'||eno||'员工姓名是:'||en);卓越PTION WHEN no_data_found THEN DBMS_OUTPUT.put_line('没有这样的员工' ; 

DECLARE eno emp.empno%TYPE ; en emp. ename%TYPE ; mn emp.ename%TYPE ; dn dept.dname% TYPE; dept dept %rowtype ; BEGIN -- 输入的信息保存在 eno 中 eno := &no ; -- 然后根据 eno 的值查询数据库SELECT e.ename,m.ename,d.dname INTO en,mn ,dn FROM emp e,dept d,emp m 其中 e.empno=7369 AND e.mgr=m.empno AND e.deptno=d.deptno; DBMS_OUTPUT.put_line('编号为:'||eno||'员工 DBMS_OUTPUT.put_line('员工姓名为:'||en); DBMS_OUTPUT.put_line('员工主管姓名为:'||mn ); DBMS_OUTPUT.put_line('编号为:'||eno||' |'员工所在部门:'||dn); DBMS_OUTPUT.put_line(dept.deptno); EXCEPTION WHEN no_data_found THEN DBMS_OUTPUT.put_line ('没有这样的员工'); END;

描述:

• no_data_found 异常类型:未找到数据
• emp.empno%类型;:表示s该变量定义为emp表中empno字段的类型
• e.ename,m.ename,d.dname INTO en,mn,dn: 可以放入多个值同一时间
dept dept %rowtype;表示dept是一行数据
PL/SQL还包括:循环、分支等条件控制语句

4. Loop循环(类似do...while)

格式:

LOOP循环语句; EXIT WHEN 终止条件;必须改变循环条件; END LOOP;

例如:循环输出1~10。

声明 countNum NUMBER; BEGIN --必须指定初始值 countNum:= 1; LOOP DBMS_OUTPUT.put_line('countNum = '||countNum);当 countNum>10 时退出;计数数 := 计数数 + 1;结束循环; END;

注意:count关键字只能在sql语句中使用

这个循环执行一次,然后进行判断。执行结果到达11结束循环

5.while循环

格式:

WHILE(判断循环条件)LOOP循环语句;循环条件改变; END LOOP;

使用此语句修改上面的程序:

DECLARE countNum NUMBER ; BEGIN --必须指定初始值 countNum := 1 ; WHILE(countNum<10) LOOP DBMS_OUTPUT.put_line('countNum = '||countNum) ;计数数 := 计数数 + 1 ;结束循环; END ;

首先判断这条语句。如果满足条件,则循环体将继续执行。执行结果为9结束循环

6. for循环

格式:FOR 变量名 in 变量初始值。结束值 LOOP 循环语句;结束循环;修改上面的例子:DECLARE countNum NUMBER; BEGIN FOR countNum IN 1..10 LOOP DBMS_OUTPUT.put_line('countNum = '||countNum);结束循环; END;

这条语句countNum大于等于1且小于等于10,最终输出为1-10

7。 if语句

条件判断

格式:

IF 条件 THEN 当条件满足时,执行此语句 END IF;

示例:

DECLARE countNum NUMBER;开始计数:= 11; IF countNum>10 THEN DBMS_OUTPUT.put_line('countNum = '||countNum);万一 ; END ;

条件语句语句,如果满足条件则执行一次

8.IF...ELSE语句

如果满足IF则执行,否则执行ELSE

示例:

声明 countNum 数字;开始 countNum := 1 ; IF countNum>10 THEN DBMS_OUTPUT.put_line('countNum = '||countNum); ELSE DBMS_OUTPUT.put_line('条件不成立');万一; END;

如果不满足条件,则执行else后面的语句

9.if…elsif…else语句

示例:

声明 countNum NUMBER ;开始 countNum := 1 ; IF countNum>10 THEN DBMS_OUTPUT.put_line('countNum = '||countNum); ELSIF countNum<5 THEN DBMS_OUTPUT.put_line('值小于 5'); ELSE DBMS_OUTPUT.put_line('不满足条件');万一 ; END ;

多个判断语句,满足条件则执行对应的跳转

10.goto语句

无条件跳转语句

用于程序控制有条件跳转到指定标签<>。难以控制和维护,谨慎使用!

声明 eno emp.empno%TYPE ; sal emp.sal%TYPE ;开始 eno := &en ;从 emp 中选择 sal INTO sal,其中 empno=eno ;如果 sal>3500 那么转到 po1 ; ELSIF sal>2000 THEN 转到 po2 ;否则转到 po3 ;万一; --Tag <> DBMS_OUTPUT.put_line('高薪...') ; <> DBMS_OUTPUT.put_line('中等工资...') ; <> DBMS_OUTPUT.put_line('工资低...') ; END;

这里分享有关Oracle中如何使用PLSQL的问题的解答。希望以上内容能够对大家有所帮助。如果您还有很多疑问没有解答,可以关注行业资讯频道了解更多。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > PLSQL在Oracle中如何使用

用户评论