PL/SQL结构

无名块:未命名的程序块

命名块:指过程,函数,包和触发器

定义部分:用于定义变量,常量,游标,触发器,复合数据类型

执行部分:用于实现应用模块功能,包含了要执行的PL/SQL语句和SQL语句

异常处理部分:用于处理执行部分可能出现的运行错误

[DECLARE

...  --定义部分]

BEGIN

...  --执行部分

[EXCEPTION

...  --异常处理部分]

END;

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

DECLARE

a NUMBER;

BEGIN

a:=1+2;

DBMS_OUTPUT.PUT_LINE(‘1+2=‘||a);

EXCEPTION

WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE(‘出现异常‘)

END;

/

条件分支语句:

DECLARE

a1 number := 100;

a2 number := 200;

BEGIN

IF a1>a2 THEN

DBMS_OUTPUT.PUT_LINE(‘a1 is larger than a2‘);

ELSIF a1=a2 THEN

DBMS_OUTPUT.PUT_LINE(‘a1 is equal to a2‘)

ELSE

DBMS_OUTPUT.PUT_LINE(‘a1 is smaller than a2‘);

ENDIF;

END;

/

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

DECLARE

grade CHAR(1) := ‘B‘;

appraisal VARCHAR2(20);

BEGIN

appraisal :=

CASE grade

WHEN ‘A‘ THEN ‘优‘

WHEN ‘B‘ THEN ‘良‘

WHEN ‘C‘ THEN ‘中‘

WHEN ‘D‘ THEN ‘及格‘

WHEN ‘F‘ THEN ‘不及格‘

ELSE ‘没有这样的等级‘

DBMS_OUTPUT.PUT_LINE(‘Grade‘||grade||‘is‘||appraisal);

END;

/

循环语句:

DECLARE

total number := 0;

salary number := 1800;

BEGIN

LOOP

total := total + salary;

EXIT WHEN total > 2500

END LOOP;

DBMS_OUTPUT.PUT_LINE(‘total salary is‘||total);

END;

/

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

DECLARE

total number := 0;

salary number := 1800;

BEGIN

WHILE total<2500 LOOP

total := total + salary;

END LOOP;

DBMS_OUTPUT.PUT_LINE(‘total salary is‘||total);

END;

/

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

DELARE

I INTEGER;

BEGIN

FOR I IN REVERSE 1..3 LOOP

DBMS_OUTPUT.PUT_LINE(I);

END LOOP;

END;

/

时间: 2024-10-01 04:39:22

PL/SQL结构的相关文章

PL/SQL结构学习

PL/SQL结构分为三块:declare.begin.exception.其中begin必不可少. 块一: declare的作用是申明变量,包括变量的名称及其相关属性和是否定义初始值. 其相关属性包括数据类型,长度. 其初始值定义时可以用:=也可以用default,当用constant对数据类型进行修饰之后,必须赋予初始值. 其次,对于变量的类型也可以定义为记录型:%rowtype :也可以定义成与某个字段类型相同,如%type. 实例: 1.%type declare V_ename emp.

[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]

【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人品牌. 本是成书的,但后来做其他事了,就无偿的贡献出来,被读者夸其目前为止最“实在.经典”的写ORACLE PL/SQL编程的文章-! 觉得对你有帮助,请留言与猛点推荐,谢谢. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) 本篇主要内容如下:第一章 PL/S

ORACLE PL/SQL编程总结(一)

----------PL/SQL 程序设计简介----------- 1.1   SQL与PL/SQL 1.1.1   什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写.PL/SQL是对SQL语言存储过程语言的扩展.从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL.它现在已经成为一种过程处理语言,简称PL/SQL.目前的PL/SQL包括两部分,一部分是数据库引擎部分:另一部分是可嵌入到许多产

oracle PL/SQL(procedure language/SQL)程序设计之函数+过程+包(转)

匿名PL/SQL块回顾 DECLARE (可选)     定义在PL/SQL块中要使用的对象 BEGIN (必须)     执行语句 EXCEPTION (可选)     错误处理语句 END; (必须) 匿名块(以DECLARE或BEGIN开始)每次使用时都要进行编译. 匿名块不存储在数据库中,并且它不能从其它的PL/SQL块中进行调用. 过程.函数.包和触发器:都是带名块.(请注重同匿名块的比较) 过程.函数.包和触发器:可以存储在数据库中,并且可以在需要的时候运行. 过程.函数.包和触发器

PL/SQL程序设计、流程控制

PL/SQL是 Procedure Language & Structured Query Language 的缩写 PL/SQL是对SQL语言存储过程语言的扩展 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分. 在语句块的声明部分对变量声明,声明一个变量的语法是: variable_name [ constant ] type [ not null ] [:=value]其中: variable_name 为变量名 type 为类型 value 为变量的初值 PL/SQL结构

PL/SQL Block Structure

[顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不殆)  昨天与我的一个朋友聊天,他可是技

ORACLE PL/SQL编程详解

ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.除此之外,可以在ORACLE数据库的某些客户端工具中,使用PL/SQL语言也是该语言的一个特点.本章的主要内容是讨论引入PL/SQL语言的必要性和该语言的

【PL/SQL基础知识】结构

1.pl/sql块的结构 declare --声明的变量.类型.游标 begin --程序的执行部分(类似于java的main()方法) exception --针对begin块中出现的异常 ---when ... then .... end ; 2.打印输出 hello world declare --声明的变量.类型.游标 begin --程序的执行部分(类似于java的main()方法) dbms_output.put_line('hello world'); end ; 3,查询id为2