Oracle442个应用场景---------PL/SQL基础

原创 2015年07月09日 08:55:33


-----------------------------------------------------------------------------------
备份和恢复数据库略过,在后面讲解应用场景207---231,越过。。。。。
数据库网络配置略过,其在实际的应用中不是很普遍,所以,此处先不进行详细的讲解,如果后期有时间会进行整理。

应用场景32----244越过。。。。。。。。

-----------------------------------------------------------------------------------

-------------------PL/SQL语言基础------------------------


基础知识点:

PL/SQL字符集
PL/SQL示例程序
声明变量与常量


----------------------------------------------------------


应用场景2245 :使用赋值语句

SET ServerOutput ON;
DECLARE
  BookName VARCHAR2(50);
BEGIN
  BookName := ' Oracle 11g学习笔记';
  dbms_output.put_line(BookName);
END;
/


应用场景246 :使用条件语句

SET ServerOutput ON;
DECLARE
  Num INTEGER := -11;
BEGIN
  IF Num < 0 THEN
    dbms_output.put_line('负数');
  ELSIF Num >0 THEN
    dbms_output.put_line('正数');
  ELSE
    dbms_output.put_line('0');
  END IF;
END;
/

应用场景247:分支语句CASE

SET ServerOutput ON;
DECLARE
  varDAY INTEGER := 3;
  Result VARCHAR2(20);
BEGIN
  Result := CASE varDAY
    WHEN 1 THEN '星期一'
    WHEN 2 THEN '星期二'
    WHEN 3 THEN '星期三'
    WHEN 4 THEN '星期四'
    WHEN 5 THEN '星期五'
    WHEN 6 THEN '星期六'
    WHEN 7 THEN '星期七'
    ELSE '数据越界'
  END;
  dbms_output.put_line(Result);
END;
/


应用场景248 :循环语句LOOP...EXIT...END

SET ServerOutput ON;
DECLARE
  v_Num INTEGER := 1;
  v_Sum INTEGER := 0;
BEGIN
  LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    IF v_Num = 4 THEN
      EXIT;
    END IF;
    dbms_output.put_line(' + ');
    v_Num := v_Num + 1;
  END LOOP;
  dbms_output.put_line(' = ');
  dbms_output.put_line(v_Sum);
END;
/


应用场景249 :循环语句LOOP...EXIT WHEN ..END

SET ServerOutput ON;
DECLARE
  v_Num INTEGER := 1;
  v_Sum INTEGER := 0;
BEGIN
  LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    EXIT WHEN v_Num = 4;
    dbms_output.put_line(' + ');
    v_Num := v_Num + 1;
  END LOOP;
  dbms_output.put_line(' = ');
  dbms_output.put_line(v_Sum);
END;
/


应用场景250 :循环语句WHILE ....LOOP...END LOOP

SET ServerOutput ON;
DECLARE
  v_Num INTEGER := 1;
  v_Sum INTEGER := 0;
BEGIN
  WHILE v_Num <= 4
  LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    IF v_Num < 4 THEN
      dbms_output.put_line(' + ');
    END IF;
    v_Num := v_Num + 1;
  END LOOP;
  dbms_output.put_line(' = ');
  dbms_output.put_line(v_Sum);
END;
/


应用场景251 :循环语句FOR...IN...LOOP...END LOOP

SET ServerOutput ON;
DECLARE
  v_Num INTEGER;
  v_Sum INTEGER := 0;
BEGIN
  FOR v_Num IN 1..4
  LOOP
    v_Sum := v_Sum + v_Num;
    dbms_output.put_line(v_Num);
    IF v_Num < 4 THEN
      dbms_output.put_line(' + ');
    END IF;
  END LOOP;
  dbms_output.put_line(' = ');
  dbms_output.put_line(v_Sum);
END;
/


应用场景252 :异常处理

SET SERVEROUTPUT ON;
DECLARE
    x NUMBER;
BEGIN
    x:= 'abc';--向NUMBER类型的变量X中赋值字符串,导致异常
EXCEPTION
   WHEN VALUE_ERROR THEN
     DBMS_OUTPUT.PUT_LINE('数据类型错误');
END;
/


SET SERVEROUTPUT ON;
DECLARE
    var_DepName VARCHAR(40);
BEGIN
    SELECT Dep_Name INTO var_DepName
    FROM HRMAN.Departments WHERE Dep_id > 1;
EXCEPTION
   WHEN NO_DATA_FOUND THEN
     DBMS_OUTPUT.PUT_LINE('没有数据');
   WHEN TOO_MANY_ROWS THEN
     DBMS_OUTPUT.PUT_LINE('返回多行匹配的数据');
    WHEN OTHERS THEN
     DBMS_OUTPUT.PUT_LINE('错误情况不明');
END;
/


应用场景253 :数值型函数

1.ABS函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(ABS(-4));
END;
/

2.CEIL函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(CEIL(116.34));
  dbms_output.put_line(CEIL(-112.74));
  dbms_output.put_line(CEIL(0));
END;
/

3.FLOOR函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(FLOOR(116.34));
  dbms_output.put_line(FLOOR(-112.74));
  dbms_output.put_line(FLOOR(0));
END;
/

4.POWER函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(POWER(15, 4));
END;
/

5.ROUND函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(ROUND(123.456, 2));
  dbms_output.put_line(ROUND(123.456, 1));
  dbms_output.put_line(ROUND(123.456, 0));
  dbms_output.put_line(ROUND(123.456, -1));
  dbms_output.put_line(ROUND(123.456, -2));
  dbms_output.put_line(ROUND(123.456, -3));
END;
/


应用场景254 :字符型函数

SET ServerOutput ON;
BEGIN
  dbms_output.put_line(ASCII('ABC'));
END;
/


COL DEP_NAME FORMAT A20
SELECT Dep_name, LENGTH(Dep_name) FROM HRMAN.Departments;

SET ServerOutput ON;
BEGIN
  dbms_output.put_line(UPPER('abc'));
END;
/


应用场景255 :日期型函数

sysdate函数:
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(SYSDATE);
END;
/

TO_CHAR函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(TO_CHAR(SYSDATE));
END;
/

last_day函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(LAST_DAY(SYSDATE));
END;
/

TO_DATE函数
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(TO_DATE('2010-2-5', 'yyyy-mm-dd'));
END;
/

months_between函数:
SET ServerOutput ON;
DECLARE
  date1 VARCHAR2(20) := '2010-06-05';
  date2 VARCHAR2(20) := '2010-10-05';
BEGIN
  dbms_output.put_line(MONTHS_BETWEEN(TO_DATE(date2,'yyyy-mm-dd'), TO_DATE(date1, 'yyyy-mm-

dd')));
END;
/

round函数:
SET ServerOutput ON;
BEGIN
  dbms_output.put_line(TO_CHAR(ROUND (SYSDATE, 'MM')));
END;


应用场景256 :统计函数

count函数
SELECT COUNT(Dep_id) FROM HRMAN.Departments;

MAX函数
SELECT MAX(Dep_id) FROM HRMAN.Departments;

MIN函数
SELECT MIN(Dep_id) FROM HRMAN.Departments;

 

 

 


 

版权声明:本人博客,供大家分享学习,有需要的话,可以转载!

Oracle数据中的PL/SQL介绍

什么是Pl/SQL: PL/SQL是Procedure Language & Sturtured Query Language的缩写。PL/SQL的优点: 有利于客户/服务器环境应用的性能提高。...
  • qq455276333
  • qq455276333
  • 2013年10月01日 11:58
  • 1613

Oracle之课程实验五(pl/sql)

课程名称:Oracle11g数据库应用简明教程   实验题目:实验三使用报表统计各部门人数 姓名:李日中 学号:2010324264班级:10计本3班 实验日期:2013-6-1  成绩:   一、 ...
  • QQ1130141391
  • QQ1130141391
  • 2013年10月22日 22:16
  • 1234

PL/SQL 游标的使用

 游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 其中包括要处理的行的数目,一个指向语句被分析以...
  • wzg775192833
  • wzg775192833
  • 2014年11月17日 15:06
  • 1489

Oracle数据库之PL/SQL过程与函数

Oracle数据库之PL/SQL过程与函数PL/SQL块分为匿名块与命名块,命名块又包含子程序、包和触发器。过程和函数统称为PL/SQL子程序,我们可以将商业逻辑、企业规则写成过程或函数保存到数据库中...
  • zhliro
  • zhliro
  • 2015年06月17日 14:00
  • 1829

PL/SQL基础语法入门

先前安装了PL/SQL软件 PL/SQL全称为Procedural Language/SQL。 PL/SQL也是一种程序语言,叫做过程化SQL语言,是Oracle数据库对SQL语句...
  • chance2015
  • chance2015
  • 2015年12月26日 18:20
  • 2260

pl/sql的数据库闪回技术

数据库操作,可能会误删一些数据,怎么找回这些数据,就可以使用这篇文章介绍的闪回技术。 备注:写这篇文章源于我的一次误操作,没有备份数据,一个时间戳数据错误,导致删掉了几天的数据,找回数据的过程,了解...
  • BlueSky216
  • BlueSky216
  • 2017年07月26日 11:40
  • 151

怎样使用PL/SQL在不安装oracle 客户端的情况下使用oracle数据库

在网上查了好多这方面的例子,但是似乎说的都不准确,在咨询朋友后终于实现了本机不安装oracle 的情况下,在windows系统上实现连接服务器上的数据库,现在贴出来与大家共享。 首先,我们需要一个PL...
  • zona_wzq
  • zona_wzq
  • 2016年08月15日 09:30
  • 515

不安装oracle客户端也可以使用pl/sql developer

通常情况下,用PL/SQL Developer连接Oracle是需要安装Oracle客户端软件的,这也就意味着你的硬盘将被占用大约1G-2G的空间,对于Windows操作系统来说,你还会多出一些开机自...
  • z69183787
  • z69183787
  • 2013年12月21日 11:44
  • 2622

ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素

ORACLE PL/SQL编程详解之二:  PL/SQL块结构和组成元素(为山九仞,岂一日之功) 本篇主要内容如下: 2.1   PL/SQL块 2.2   PL/SQL结构 2.3   标识符...
  • u012456926
  • u012456926
  • 2015年01月06日 11:18
  • 1018

PL/SQL Developer 连接Oracle数据库详细配置方法

 PL/SQL Developer 连接Oracle数据库详细配置方法   近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server)。本文现...
  • Iamagril
  • Iamagril
  • 2015年06月15日 09:24
  • 1907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle442个应用场景---------PL/SQL基础
举报原因:
原因补充:

(最多只允许输入30个字)