广告
返回顶部
首页 > 资讯 > 数据库 >PLSQL如何在Oracle中使用
  • 515
分享到

PLSQL如何在Oracle中使用

2024-04-02 19:04:59 515人浏览 独家记忆
摘要

PLsql如何在oracle中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle基本PLSQL的使用实例详解PL/SQL 块是

PLsql如何在oracle中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Oracle基本PLSQL的使用实例详解

PL/SQL 块是在 SQL 语言之上发展起来的一种应用,可以集中的处理各种复杂的 SQL 操 作。

组成:

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

1.一个简单的PL/SQL块

DECLARE  
  i number; 
BEGIN 
  I:=30; 
  DBMS_OUTPUT.put_line('I的内容为:'||i); 
END;

此时,直接执行程序即可。

执行之后发现没有任何的输出。因为 Oracle 在系统设置中默认设置了输出不显示,如果要 显示的话,输入以下命令:
set serveroutput on;如果是使用Toad,则可以在Desktop中选择PLSQL,并打开DBMS OUTPUT。

带异常的语句块

DECLARE 
  i number; 
BEGIN 
  i:=1/0; 
EXCEPTION 
  when ZERO_DIVIDE then 
  DBMS_OUTPUT.put_line("There is a Exception"); 
END;

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

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

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

DECLARE 
  eno number; 
  en varchar(20); 
BEGIN 
  --输入的信息保存在eno里 
  eno:=&no; 
  --之后根据eno的值,对数据库进行查询操作。 
  select ename into en from emp where empno = eno; 
  DBMS_OUTPUT.put_line('编号为:'||eno||'雇员的姓名为:'||en); 
EXCEPTION 
  WHEN no_data_found THEN 
  DBMS_OUTPUT.put_line('没有此雇员'); 
END;

3.在以上的查询中再进一步:可以根据雇员的编号查出姓名及其领导的姓名和所在的部门, 进行显示。

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  
  WHERE e.empno=7369 AND e.mgr=m.empno AND e.deptno=d.deptno ;  
  DBMS_OUTPUT.put_line('编号为:'||eno||'雇员的姓名为:'||en) ; 
  DBMS_OUTPUT.put_line('编号为:'||eno||'雇员的上级姓名为:'||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%TYPE ; :表示以 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。

DECLARE 
  countNum NUMBER ;  
BEGIN 
  --必须赋初值 
  countNum := 1 ;  
  LOOP 
    DBMS_OUTPUT.put_line('countNum = '||countNum) ;  
  EXIT WHEN countNum>10 ; 
    countNum := countNum + 1 ;  
  END LOOP ;  
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) ; 
    countNum := countNum + 1 ;  
  END LOOP ;  
END ;

此语句,是先判断,如果满足条件则继续执行循环体,执行结果到9结束循环

6.for 循环

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

此语句countNum大于等于1小于等于10,最后输出1-10

7.if语句

条件判断

格式:

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

例:

DECLARE 
  countNum NUMBER ;  
BEGIN 
  countNum := 11 ; 
  IF countNum>10 THEN  
    DBMS_OUTPUT.put_line('countNum = '||countNum) ;  
  END IF ; 
END ;

条件语句,满足条件,执行一次

8.IF…ELSE 语句

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

例:

DECLARE 
  countNum NUMBER ; 
BEGIN 
  countNum := 1 ; 
  IF countNum>10 THEN  
    DBMS_OUTPUT.put_line('countNum = '||countNum) ;  
  ELSE 
    DBMS_OUTPUT.put_line('条件不不成立') ; 
  END IF ;  
END ;

条件不满足执行else后面的语句

9.if…elsif…else 语句

例:

DECLARE 
  countNum NUMBER ; 
BEGIN 
  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 IF ; 
END ;

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

10.goto语句

无条件跳转语句

用于程序控制非条件跳至指定标签<<???>>。不易控制和维护,慎用!

DECLARE 
  eno emp.empno%TYPE ;  
  sal emp.sal%TYPE ;  
BEGIN 
  eno := &en ; 
  SELECT sal INTO sal FROM emp WHERE empno=eno ;  
  IF sal>3500 THEN 
    Goto po1 ; 
  ELSIF sal>2000 THEN 
    goto po2 ;  
  ELSE 
    goto po3 ; 
  END IF; 
  --标签 
  <<po1>> DBMS_OUTPUT.put_line('高工资。。。') ; 
  <<po2>> DBMS_OUTPUT.put_line('中等工资。。') ; 
  <<po3>> DBMS_OUTPUT.put_line('低工资。。。') ;  
END;

关于PLSQL如何在Oracle中使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: PLSQL如何在Oracle中使用

本文链接: https://www.lsjlt.com/news/55451.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PLSQL如何在Oracle中使用
    PLSQL如何在Oracle中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle基本PLSQL的使用实例详解PL/SQL 块是...
    99+
    2022-10-18
  • Oracle/PLSQL的EXISTS使用
    下面的testa表没有数据,dept表有数据。直接select,有数据就会有结果集。        plsql的exists用于判断子查询是否有结果集返回,“exists (子查询)”子查询只要结果集有数据,则exis...
    99+
    2018-02-04
    Oracle/PLSQL的EXISTS使用
  • 怎么在plsql中连接oracle数据库
    这篇文章将为大家详细讲解有关怎么在plsql中连接oracle数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:先安装plsql客户端,plsql...
    99+
    2022-10-18
  • 如何在plsql中添加索引
    这篇文章将为大家详细讲解有关如何在plsql中添加索引,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。索引是对表中一列或多列的值进行排序的一种结构,使用索引可...
    99+
    2022-10-18
  • 使用PLSQL Developer 连接远程oracle实例
    客户端:WIN10服务器:在Linux安装的Oracle服务器1、下载plsqldeveloper11.zip、instantclient_11_2.rar 并解压到相应的目录D:\instantclien...
    99+
    2022-10-18
  • 使用PLSQL远程连接Oracle数据库
    这篇文章给大家介绍使用PLSQL远程连接Oracle数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.下载oracle官方的客户端连接基本组件instantclient-basi...
    99+
    2022-10-18
  • plsql连接oracle超时如何解决
    当使用PL/SQL连接Oracle时,如果遇到连接超时的问题,可以尝试以下解决方案:1. 检查网络连接:确保服务器和客户端之间的网络...
    99+
    2023-09-26
    oracle plsql
  • 如何在 64 位的 Windows 7 中安装 PLSQL DEVELOPER 11 和 Oracle 11g x64 Client
    PLSQL Developer 11.06 中文绿色注册版(免Oracle11g客户端) 下载链接:http://pan.baidu.com/s/1qYapNNe 密码:momh问题的来龙去脉在W...
    99+
    2022-10-18
  • LogMiner如何在Oracle中使用
    这篇文章给大家介绍LogMiner如何在Oracle中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。LogMiner介绍LogMiner 是Oracle公司从产品8i以后提供的一个...
    99+
    2022-10-18
  • Cursor如何在 Oracle中使用
    今天就跟大家聊聊有关Cursor如何在 Oracle中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查询  SELECT语句用于从数据库...
    99+
    2022-10-18
  • dblink如何在Oracle中使用
    dblink如何在Oracle中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。业务需求:原数据库(10.2.0.4.0),...
    99+
    2022-10-18
  • 怎么使用PLSQL远程连接Oracle数据库
    这篇文章主要介绍了怎么使用PLSQL远程连接Oracle数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用PLSQL远程连接Oracle数据库文章都会有所收获,下面我们一起来看看吧。1.前言数据库作为...
    99+
    2023-07-05
  • Oracle Database Instant Client 11g +PLSQL Developer如何连接oracle服务端
    这篇文章主要介绍Oracle Database Instant Client 11g +PLSQL Developer如何连接oracle服务端,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定...
    99+
    2022-10-19
  • plsql连不上oracle数据库如何解决
    如果无法连接到Oracle数据库,可能是由于以下原因导致的:1. Oracle数据库服务未启动:检查Oracle数据库服务是否已经启...
    99+
    2023-10-18
    plsql oracle数据库
  • 使用plsql时查询Oracle语句中文无法匹配问题
       今天在使用plsql查询数据时查询一条sql语句,执行后什么结果都没有,起先还以为是sql语句写错了,因为先前会知道要查的表不可能没有数据的,于是自己又去服务器上用sqlplus查...
    99+
    2022-10-18
  • 如何在Oracle中使用同义词
    今天就跟大家聊聊有关如何在Oracle中使用同义词,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Oracle 同义词概念:Oracle的同义词(sy...
    99+
    2022-10-18
  • trunc()和round()如何在oracle中使用
    本篇文章为大家展示了 trunc()和round()如何在oracle中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.round函数(四舍五入)描述 : 传...
    99+
    2022-10-18
  • 如何在Oracle中使用触发器
    如何在Oracle中使用触发器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。触发器类型触发器在数据库里以独立的对象存储,它与存储过程和函数...
    99+
    2022-10-18
  • Contains 函数如何在Oracle 中使用
    本篇文章为大家展示了Contains 函数如何在Oracle 中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 查询住址在北京的学生SELECT&n...
    99+
    2022-10-18
  • 如何在PHP中使用Oracle函数
    随着企业应用软件的开发,许多企业开始使用Oracle数据库来存储数据。在PHP开发中,Oracle数据库有着广泛的应用,因为它是一个可靠的高性能的数据库。为了更好地使用Oracle数据库,你需要了解如何在PHP中使用Oracle函数。在本文...
    99+
    2023-05-18
    函数 PHP Oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作