oracle pl/sql程序
declare
begin
dbms_output.put_line('hello world');
end;
declare
说明部分(变量说明,光标申明,例外说明)
begin
语句序列(DML语句)...
exception
例外处理语句
end;
/
a char(15);
b boolean:=true;
c number(8,2);
--myName的类型与emp表中的ename列类型一样
myName emp.ename%type;
--记录型变量
myRec emp%rowtype;
IF 条件 THEN 语句1;
语句2;
END IF; IF 条件 THEN 语句序列1;
ELSE 语句序列2;
END IF; IF 条件 THEN 语句;
ELSIF 语句 THEN 语句;
ELSE 语句;
END IF;
--接收键盘输入
--num: 地址值,在该地址上 保存了输入的值
accept num prompt '请输入一个数字'; declare
--定义变量保存输入的数字
pnum number := #
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;
/
循环语句
WHILE total<100
LOOP
...
total:=total+1;
END LOOP; LOOP
EXIT [when 条件];
...
END LOOP; FOR I IN 1..3
LOOP
语句序列;
END LOOP;
--输出从1-10
declare
num number(10) := 1;
begin
while num <= 10 loop
dbms_output.put_line(num);
num := num + 1;
end loop;
end; --输出从1-10
declare
num number(10) := 1;
begin
loop
exit when num > 10;
dbms_output.put_line(num);
num := num + 1;
end loop;
end;
--输出从1-10
declare
num number(10) := 1;
begin
for num in 1 .. 10 loop
dbms_output.put_line(num);
end loop;
end;
CURSOR 光标名 [(参数名 数据类型[,参数名 数据类型]...)]
IS SELECT 语句;
cursor cr is select ename from emp;
打开光标: open cr;
取一行光标值: fetch cr into pename;
关闭光标:close cr;
declare
--定义光标
cursor cr is select ename, sal from emp;
pname emp.ename%type;
psal emp.sal%type;
begin
--打开光标
open cr;
loop
--退出条件,没有找到记录
exit when cr%notfound;
--取记录
fetch cr into pname, psal;
--打印数据
dbms_output.put_line(pname || '工资是' || psal);
end loop;
--关闭光标
close cr;
end;
带参数的光标
cursor cr(no varchar2)
is select ename,sal from emp where deptno=no;
declare
cursor cr(no number) is select ename,sal from emp where deptno=no;
pname emp.ename%type;
psal emp.sal%type;
begin
--打开光标
open cr(10);
loop
--退出条件,没有找到记录
exit when cr%notfound;
--取记录
fetch cr into pname, psal;
--打印数据
dbms_output.put_line(pname || '工资是' || psal || '涨工资' || (psal+1000));
end loop;
--关闭光标
close cr;
end;
例外
在declare中定义例外
myExce exception;
在可执行语句中引起例外
raise myExce;
在Exception节处理例外
when myExce then ...
declare
cursor cr is select ename, comm from emp;
pname emp.ename%type;
pcomm emp.comm%type;
myexce exception;
begin
--打开光标
open cr;
loop
--退出条件,没有找到记录
exit when cr%notfound;
--取记录
fetch cr into pname, pcomm;
--引发例外
if pcomm is null then raise myexce;
end if;
dbms_output.put_line(pname || '的comm不是空');
end loop;
--关闭光标
close cr;
exception
--处理例外
when myexce then
dbms_output.put_line(pname || '的comm是空的');
end;
oracle pl/sql程序的更多相关文章
- Oracle数据库之PL/SQL程序设计基础
PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- Oracle数据库之PL/SQL程序基础设计
一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执 ...
- Oracle PL/SQL随堂笔记总结
1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的p ...
- Oracle PL/SQL
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...
- oracle pl/sql split函数
在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...
- [Oracle] PL/SQL学习笔记
-- 1. 使用一个变量 declare -- Local variables here v_name ); begin -- Test statements here select t.user_n ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- oracle PL/SQL基础编程
PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言 PLS-00103:出现符号"declare"在需要下列之一时 符号&quo ...
随机推荐
- JSON Web Token的使用(转载)
定义 JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. 适用场景 1.用于向Web应用传递一些非敏感信息.例如完成加好友.下 ...
- UMG设置组件自适应居中或靠边
转自:http://aigo.iteye.com/blog/2297430 比如你的UI中有些组件需要居中显示,有些需要始终在右上角并且与上边框和右边框保持固定的距离等等,对于这种需要动态适应屏幕分辨 ...
- Linux常用命令收藏
常见操作: 快速清空文件内容的几种方法:#: > filename # > filename # echo "" > filename # echo > f ...
- 并发基础(八) java线程的中断机制
文章转载自 详细分析Java中断机制 1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任 ...
- 深入分析Java Web技术内幕 修订版 pdf
百度网盘:http://pan.baidu.com/s/1slHCCw9
- 代码:cookie(一个广告展示例子)
这个小例子的要求是: 用户第一次进入,显示大图,2秒后大图动画关闭,再把小图动画展开: 用户再次进入后,只显示静态小图. 做法: 定义一个容器 .img201512ad,宽高写死:1190x70.—— ...
- 29. 在Linux上使用unzip解压以默认编码解压,中文文件名会出现乱码
解决办法: 下载p7zip-9.13-1.el5.rf.x86_64.rpm和p7zip-plugins-9.13-1.el5.rf.x86_64.rpm包 用以下方法安装后,使用7z x filen ...
- leetcode350
public class Solution { public int[] Intersect(int[] nums1, int[] nums2) { var len1 = nums1.Length; ...
- NRF51822之DFU使用手机升级
演示的工程是 [application] nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_hrs\pca10028\s110_w ...
- Spring Boot实践——Mybatis分页插件PageHelper的使用
出自:https://blog.csdn.net/csdn_huzeliang/article/details/79350425 在springboot中使用PageHelper插件有两种较为相似的方 ...