PL/SQL块

1.简介

Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询与Oracle自身过程控制为一体的强大语言,PL/SQL不但支持更多的数据类型,拥有自身的变量声明、赋值语句,而且还有条件、循环等流程控制语句。过程控制结构与SQL数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包。

PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程控制语句由PL/SQL引擎自身去执行,把PL/SQL块中的SQL语句交给服务器的SQL语句执行器执行。如图所示:


image.png
2.语法结构

PL/SQL 块是构成 PL/SQL 程序的基本单元
将逻辑上相关的声明和语句组合在一起
PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分

[DECLARE 
declarations] --声明部分
BEGIN
executable statements--可执行部分
[EXCEPTION 
handlers]--异常处理部分
END;

PL/SQL块可以分为三类:
1.无名块或匿名块(anonymous):动态构造,只能执行一次,可调用其它程序,但不能被其它程序调用。
2.命名块(named):是带有名称的匿名块,这个名称就是标签。
3.子程序(subprogram):存储在数据库中的存储过程、函数等。当在数据库上建立好后可以在其它程序中调用它们。
4.触发器(Trigger):当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
5.程序包(package):存储在数据库中的一组子程序、变量定义。在包中的子程序可以被其它程序包或子程序调用。但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序。
例如

DECLARE
bid int := '&id';  ①
--v_isbn iweb_tbl_book.isbn%TYPE;②
--v_title iweb_tbl_book.title%TYPE;③
--v_author iweb_tbl_book.author%TYPE;
v_book iweb_tbl_book%ROWTYPE;④
BEGIN
select * into v_book 
from iweb_tbl_book
where id = bid;
--输出结果
dbms_output.put_line('isbn:' || v_book.isbn);⑤
dbms_output.put_line('title:' || v_book.title);⑥
dbms_output.put_line('author:'|| v_book.author);
dbms_output.put_line('pagenum:'|| v_book.pagenum);
END;

--①'&id'表示从外部录入数据ID,变量声明赋值用 :=
也可以使用select…into语句对变量sname赋值,要求查询的结果必须是一行,不能是多行或者没有记录

SELECT ename INTO sname FROM emp WHERE empno=7934;

--②%iweb_tbl_book.title%TYPE指向表中书名列的属性,好处是不需要自己再赋予属性了
--③给变量命名时一般遵循规则v_name,给常量命名时遵循c_name
--④%ROWTYPE - 提供表示表中一行的记录类型
--⑤输出结果dbms_output.put_line()
--⑥ || 用来分隔变量和字符串

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • PL/SQL 这是对Oracle-SQL知识点详细介绍的文章系列,其他文章如下: Oracle-SQL系列知识点(...
    GuaKin_Huang阅读 7,142评论 0 14
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,622评论 18 399
  • 如果不是为了应付时间逼宫 如果不是为了本性和欲望 如果不是为了相互取暖 人们其实不用结婚的 毕竟在这个牵个手就能上...
    幻梦邪魂阅读 437评论 4 1
  • 曾经我来过 来的时候遇到如花的你 如今我走了 走的时候乞求温柔的你 现在的你我 怎样去面对无知的过错 背叛让彼此伤...
    念江子阅读 172评论 4 3
  • 用心生活,处处是惊喜! 用心陪伴孩子成长,就是一场自我修炼的过程!或许,你不认同我,但是,我相信在将来某一天,你终...
    lily的姐姐阅读 192评论 0 0