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 ...
随机推荐
- Protocol Buffer Basics: Python
原文https://developers.google.com/protocol-buffers/docs/pythontutorial Protocol Buffer Basics: Python ...
- Oracle 同一个字段的两值进行加减计算
如 病人ID 入院日期 出院日期 00001 2016-09-01 2016-09-10 00001 2016-09-15 ...
- ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4
1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...
- UNDO三大作用与一致性读机制浅析
UNDO三大作用1.一致性读(consistent read)2.事务回滚(Rollback Transaction)3.实例恢复(Instance Recovery) 一致性读当会话发出一条SQL查 ...
- php使用ffmpeg向视频中添加文字字幕
这篇文章主要介绍了PHP使用ffmpeg给视频增加字幕显示的方法,实例分析了php操作ffmpeg给视频增加字母的技巧,具有一定参考借鉴价值,需要的朋友可以参考下. 本文实例讲述了PHP使用ffmpe ...
- Linux下Nagios的安装与配置 及遇到的坑
原文http://www.jianshu.com/p/7bc822fa8278 不愿意看前5.6c部分可以直接跳到最后看命令. 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能 ...
- Noip2011Mayan游戏
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- 更新OpenSSH
1.安装必要组件: yum install -y gcc openssl-devel pam-devel rpm-build 2.下载OpenSSH最新版本: https://ftp.openbsd. ...
- html 更新
HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5 ...
- js、C#获取当前url的参数值
之前很想做一些封装关于获取URL参数值方法,今天简单整理了一下js和后台代码获取url参数值的方法,有什么不好地方,还请大家包涵,代码如下: 1.JS处理URL参数值 <script langu ...