PL/SQL

  • PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言。
  • SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环)。而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量

SQL执行

PL/SQL执行

  • 匿名Pl/SQL块
    • – 动态构造,只能执行一次
    • 一次性完成,没有名字
  • 存储过程,函数,触发器
    • 给它一个名字,保存到数据库,可以反复使用,调用.
    • – 存储在数据库中编译过的代码,可以反复执行。

PL/SQL语法结构

语法:

DECLARE

-- 声明部分,例如:定义变量、常量、游标。

BEGIN

-- 程序编写、SQL语句

EXECTPION

-- 处理异常

END ;

/

说明:

声明部分(DECLARE)

包含变量定义、用户定义的PL/SQL类型、游标、引用的函数或过程;

执行部分(BEGIN)

包含变量赋值、对象初始化、条件结构、迭代结构、嵌套的PL/SQL匿名块,或是对局部或存储PL/SQL命名块的调用;

异常部分(EXCEPTION)

包含错误处理语句,该语句可以像执行部分一样使用所有项;

结束部分(END)

程序执行到END表示结束,分号用于结束匿名块,而正斜杠(/)执行块程序;

默认情况下系统输出显示被关闭的,需要设定 SET SERVEROUTPUT ON

匿名Pl/SQL块

– 动态构造,只能执行一次

一次性完成,没有名字

范例

编写不做任何工作的PL/SQL块

BEGIN

NULL ;

END ;

/

最简单的循环PL/SQL匿名块,null表示什么也没干

BEGIN

for i in 1..10 loop

null;

end loop;

END;

/

编写HELLO WORD

SQL> BEGIN

2 DBMS_OUTPUT.put_line('HELLO,WENDY');

3 END;

4 /

HELLO,WENDY

PL/SQL procedure successfully completed.

匿名PL/SQL块,循环显示2遍HELLOW,WENDY

BEGIN

For I in 1..2 loop

DBMS_OUTPUT.put_line('HELLO,WENDY');

End loop;

END;

/

匿名PL/SQL块,循环插入数据

SQL> insert into t select rownum,'x' from dba_objects where rownum<101;

能用SQL解决的就不要用PL/SQL

PL/SQL会消耗资源,效率很低

BEGIN

for i in 1..100 loop

insert into t values(i,'w');

end loop;

END;

/

编写一个简单的PL/SQL程序

:= 为变量赋值

DECLARE

v_num NUMBER ;    -- 定义一个变量v_num

BEGIN

v_num := 30 ;         -- 设置v_num的内容

DBMS_OUTPUT.put_line('V_NUM变量的内容是:' || v_num) ;

END ;

/

编写PL/SQL块,输入一个雇员编号,而后取得指定的雇员姓名

DECLARE

v_eno    NUMBER ;

v_ename    VARCHAR2(10) ;

BEGIN

v_eno := &empno ;        -- 由键盘输入雇员编号

SELECT ename INTO v_ename FROM emp WHERE empno=v_eno ;

DBMS_OUTPUT.put_line('编号为:' || v_eno || '雇员的名字为:'|| v_ename) ;

END ;

/

PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)的更多相关文章

  1. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

  2. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  3. PL/SQL编程基础(三):数据类型划分

    数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...

  4. PL/SQL编程基础(五):异常处理(EXCEPTION)

    异常处理 异常产生所带来的问题: 使用EXCEPTION程序块进行异常处理: 实现用户自定义异常. 使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕: 用户可以使用自定义异常进行操作. ...

  5. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

  6. Oracle Pl/SQL编程基础

    Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...

  7. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  8. PL/SQL编程基础

    范例:编写不做任何工作的PL/SQL块 BEGIN NULL ; END ; /   范例:编写一个简单的PL/SQL程序 DECLARE v_num NUMBER ; -- 定义一个变量v_num ...

  9. PL/SQL编程基础(四):程序控制(IF,CASE,FOR,LOOP,WHILE LOOP,EXIT,CONTINUE)

    程序控制 程序结构有分支结构与循环结构: 分支结构语法:IF.CASE: 循环结构:FOR.WHILE LOOP:先执行再判断,至少执行一次: WHILE LOOP:先判断再执行,如果不满足条件,就不 ...

随机推荐

  1. c网络编程-多播

    /* 编译通过环境,Windows XP sp2,Windows 2003 server SDK,VC++6.0 sp5. */ /********************************** ...

  2. linux -- ubuntu14.10安装gnome桌面环境和dock工具

    ubuntu14.10系统自带Unity桌面环境,但是还是习惯于gnome桌面环境,再加上dock用着就很顺手了.   方法/步骤 首先,按Ctrl+Alt+T,调出终端.在其中输入:sudo apt ...

  3. Json学习一(基础概念知识学习)

    1.Json简单介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它使得人们非常easy的进行阅读和编写. 同一时候也方便了机器进行解析和生成.它是基 ...

  4. [转]wcout输出中文却不显示出来

    准备使用UNICODE来写个控制台测试程序发现,cout无法输出UNICODE的中文字符.查找C++标准看到,其提供了wcin.wcout.wcerr.wclog用于处理wchar_t字符的输入输出. ...

  5. mysql数据库使用mysqldump工具针对一个数据库备份,使用--databases选项与不使用该参数的区别

    需求描述: 今天在做mysqldump备份某个数据库的试验,在备份某个数据库的时候可以使用 --databases参数,也可以直接进行某个数据库的备份,那么这里记录下两者的区别 操作过程: 1.使用- ...

  6. linux中,查看某个命令是来自哪个RPM包或者是通过哪个RPM包安装的

    需求描述: 今天在测试ssh命令到底是哪个RPM包,安装之后生成的,找了一些文档 在这里进行记录下,主要是rpm -qf命令的使用,查询文件在哪个包里. 操作过程: 1.通过whereis 定位ssh ...

  7. ios 显示代码块(show the code snippet library)

    在项目的实际开发中,我们会重复的书写很多的代码,我经常是需要用到某一个功能,就从以前的项目中复制粘贴过来,很是麻烦 下面就为大家提供两种不错的方法, 一.宏定义,这个大家应该很熟悉,在这里就不做多的介 ...

  8. hadoop程序MapReduce之WordCount

    需求:统计一个文件中所有单词出现的个数. 样板:word.log文件中有hadoop hive hbase hadoop hive 输出:hadoop 2 hive 2 hbase 1 MapRedu ...

  9. javascript中五种基本数据类型

    前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...

  10. 《C++ Primer Plus》15.5 类型转换运算符 学习笔记

    C++相对C更严格地限制允许的类型转换,并添加4个类型转换运算符,是转换过程更规范:* dynamic_cast:* const_cast:* static_cast:* reinterpret_ca ...