PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
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块)的更多相关文章
- 【PL/SQL编程基础】
[PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- PL/SQL编程基础(三):数据类型划分
数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...
- PL/SQL编程基础(五):异常处理(EXCEPTION)
异常处理 异常产生所带来的问题: 使用EXCEPTION程序块进行异常处理: 实现用户自定义异常. 使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕: 用户可以使用自定义异常进行操作. ...
- PL/SQL编程基础——PL/SQL简介
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...
- Oracle Pl/SQL编程基础
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...
- ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介
ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...
- PL/SQL编程基础
范例:编写不做任何工作的PL/SQL块 BEGIN NULL ; END ; / 范例:编写一个简单的PL/SQL程序 DECLARE v_num NUMBER ; -- 定义一个变量v_num ...
- PL/SQL编程基础(四):程序控制(IF,CASE,FOR,LOOP,WHILE LOOP,EXIT,CONTINUE)
程序控制 程序结构有分支结构与循环结构: 分支结构语法:IF.CASE: 循环结构:FOR.WHILE LOOP:先执行再判断,至少执行一次: WHILE LOOP:先判断再执行,如果不满足条件,就不 ...
随机推荐
- Linux的缓存内存 Cache Memory详解
http://www.ha97.com/4337.html PS:前天有童鞋问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高 ...
- Oracle过程及函数的参数模式详解
一.In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: (1)in模式 in模式是引用传 ...
- ubuntu wine-qq安装
1.添加PPA sudo add-apt-repository ppa:ubuntu-wine/ppa 2.更新列表 sudo apt-get update 3.安装Wine sudo apt-get ...
- C语言中do...while(0)的妙用-避免goto
使用goto的优雅并避免结构的混乱 将要跳转到的语句用do{-}while(0) 包起来就可以. reference #defien N 10 bool Execute() { // 分配资源 int ...
- 工作流JBPM_day01:3-使用JBPM的API添加与执行流程
工作流JBPM_day01:3-使用JBPM的API添加与执行流程 流程定义画完得到压缩文件--->部署流程定义-->启动流程实例-->查询我的个人任务列表-->办理任务--& ...
- POJ 1014 Dividing(多重背包, 倍增优化)
Q: 倍增优化后, 还是有重复的元素, 怎么办 A: 假定重复的元素比较少, 不用考虑 Description Marsha and Bill own a collection of marbles. ...
- webpack2.0简单配置教程
以前习惯用gulp+less来开发项目,由于公司项目用的vue开发的,所以学下webpack这个打包工具.以下是我学习时的笔记,希望给在webpack配置过程中遇到麻烦的朋友一丝帮助. 目前只配置了s ...
- ios button标记
在写项目的时候,for循环创建多个button,在需要设置背景图片和,需要标记所选中的button的需求, 在这里提供两种方法: 一: 1:把for循环创建的button全部装到一个新建的数组中,把他 ...
- HTTP 代理
HTTP 代理: (1) 如果我们一直用同一个IP去爬取同一个网站上的网页,久了之后可能会被该网站服务器屏蔽,因此我们可以使用代理IP来爬取,代理实际上指的就是代理服务器(2) 当我们使用代理IP爬取 ...
- 教程Xcode 下编译发布与提交App到AppStore
The proplem of Prepare for Upload for App store upload Application App store 增加新应用的步骤. 1. 访问iTunesCo ...

