- 1
- 0
- 约3.64千字
- 约 11页
- 2019-04-05 发布于陕西
- 举报
PL/SQL程序设计
什么是PL/SQL
PL/SQL(Procedure Language/SQL)
PLSQL是Oracle对sql语言的过程化扩展
指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。
把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单、高效、灵活和实用。
Plsql(oracle), Transact-sql(SQL server)
HelloWorld
写一段PL/SQL程序,在屏幕上打印“Hello World!”
注意:如果要在屏幕上输出信息,需要将serveroutput开关打开:set serveroutput on
--
--打印Hello World
set serveroutput on
declare
--变量说明
begin
--程序体
dbms_output.put_line(Hello World);
end;
/
PL/SQL程序结构
declare
declare
说明部分 (变量说明,光标申明,例外说明 〕
begin
语句序列 (DML语句〕…
exception
例外处理语句
end;
/
如果没有变量,就可以不写declare段
PL/SQL对大小写不敏感。
赋值是使用冒号等号“:=”(中间不能有空格)
注释使用“--”或是“/* ... */”(就是SQL注释)
注意最后的end后面有个分号。
变量与赋值
声明变量
说明变量 (char, varchar2, date, number, boolean, long)
记录变量分量的引用:
emp_rec.ename := ADAMS;
属性类型有两种:
%TYPE - 引用变量和数据库列的数据类型
%ROWTYPE - 提供表示表中一行的记录类型
使用属性类型的优点:
不需要知道被引用的表列的具体类型
如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变
赋值语句
var1:=this is a argument;
emp_rec.sal:= sal *2 + nvl(comm, 0);
sum_sal:=sum_sal+v_sal;
FETCH c1 INTO e_eno , e_sal ;
Select sal into psal from emp where ....
IF语句
语法
只有IF的情况:
IF
IF 条件 THEN 语句1;
语句2;
END IF;
带ELSE的情况:
IF
IF 条件 THEN 语句序列1;
ESLE 语句序列 2;
END IF;
IF ... ELSE IF ... ELSE的情况:
IF
IF 条件 THEN 语句;
ELSIF 语句 THEN 语句;
ELSE 语句;
END IF;
注意:是ELSIF,不是ELSEIF。
示例
要求:判断用户输入的数字。
提示:
从键盘输入:accept num prompt 请输入一个数字;
得到键盘输入的值:pnum number := num;
declare
declare
--保存用户输入的数字( 隐式转换)
pnum number := 5; -- 设置不同的值进行测试
begin
--判断
if pnum=0 then dbms_output.put_line(您输入的是0);
elsif pnum=1 then dbms_output.put_line(您输入的是1);
elsif pnum=2 then dbms_output.put_line(您输入的是2);
else dbms_output.put_line(其他数字);
end if;
end;
/
循环语句
语法
Loop
Loop
Loop
EXIT [when 条件];
...
End loop
For
FOR
FOR i IN 1..3
LOOP
语句序列 ;
END LOOP;
While
WHILE total = 25000
WHILE total = 25000
LOOP
...
total := total + salary;
END LOOP;
示例
declare
declare
pnum number := 1;
begin
loop
-- 退出条件
exit when pnum 10;
--打印
dbms_out
您可能关注的文档
- 谁说菜鸟不会数据分析 SPSS篇 ,狄松著 ,P228 ,2016.06 sample.pdf
- 水晶易表白皮书V2.0.pdf
- 说话的逻辑与技巧_12859570.pdf
- 思科AP简明配置指南.pdf
- 思科ASA动手实验操作指南(中文版).pdf
- 思科ASA防火墙介绍.ppt
- 思科CCNA_CCNP_CCIE案例实战手册 交换部分案例实战.pdf
- 思科CleanAir技术中文介绍.pdf
- 思科IPS入侵检测系统.ppt
- 思科IP通信中小系统CCME设计指南.pdf
- 2025-2026学年广西柳州市人教版四年级上册期末监测数学试卷(含答案).pdf
- 2026年城市轨道交通智慧票务系统支付方式创新与便捷出行支付体验报告.docx
- 2026年城市轨道交通智慧票务系统电子发票应用与便捷出行服务创新报告.docx
- CN109526002B 定时提前量的配置获取方法、配置方法及装置 (北京三星通信技术研究有限公司).docx
- CN109254755B 归约运算映射系统和方法 (英特尔公司).docx
- 2025-2026学年广西南宁沛鸿民族中学春季学期开学考试高二英语试卷.pdf
- 2025-2026学年贵州省贵阳市观山湖区七年级(上)期末道德与法治试卷(含答案).pdf
- 2026年城市轨道交通智慧运维平台技术创新白皮书.docx
- CN109560346B 对电池进行温度控制的装置、车辆、以及加热和冷却电池的方法 (福特全球技术公司).docx
- 2026年城市轨道交通智慧运维技术应用与故障预警关键技术与创新报告.docx
原创力文档

文档评论(0)