oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...
PL/SQL入门教程目录
Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理
一、PL/SQL简介
1.PL/SQL简介
1.PL/SQl是过程语言PL与结构化语言SQL结合而成的编程语言
2.PL/SQL引擎驻留在Oracle服务器中
3.该引擎接收PL/SQL块并对其进行编译
2.PL/SQL要点
PL/SQL是一种强类型的编程语言,所有的变量都必须在声明之后才可以使用,
变量都要求在declare部分进行声明,对于变量名称有如下规定:
1.变量名可以是字母数字下划线$#等组成
2.所有的变量名称要求以字母开头,不能是Oracle中的关键字
3.变量的长度最多只能为30个字符
4.为了提高PL/SQL的可读性,所有变量采用"v_变量名"进行定义
3.PL/SQL 块
PL/SQL是构成PL/SQL的基本组成单元,
将逻辑上相关的声明和语句组合在一起,
PL/SQL分为三个部分:
二、 PL/SQL 语法和格式:
1.语法格式:
declare 声明部分
begin 可执行部分 exception 异常处理部分 end;1
2
3
4
5
6
7
2.声明变量
变量名 数据类型
3.声明变量时赋值
变量名 数据类型 := 值 ; 注意这里的 : 不可省略
4.PL/SQL中的输出函数
dbms_output.put_line( 要输出的值或者字符串,字符串使用 ’ ’ 包裹);
5.PL/SQL格式举例:
declare v_name varchar2(20) :='我是谁?';
begin
-- 输出操作
dbms_output.put_line('pl/sql的输出操作' || v_name); PL/SQL 中使用||连接(相当于+)
end;1
2
3
4
5
6
6.图1:输出操作结果显示
7.结合SQL语句使用into为变量赋值
declare v_name varchar2(20);
begin -- 通过SQL语句和into关键字为变量赋值 select uname into v_name from user_book where userid=9999; dbms_output.put_line(v_name); -- 打印
end;1
2
3
4
5
6
7
三、两个特殊的字段类型
1.%type指定的字段的类型
使用方式:
变量名 表名.属性名%type;
declare v_name user_book.uname%type; v_id user_book.userid%type; begin -- 为字段赋值 select user_book.uname,user_book.userid into v_name,v_id from user_book where user_book.userid=9999;
-- 输出看结果
dbms_output.put_line(v_id || v_name);
end;1
2
3
4
5
6
7
8
9
10
11
2.%rowtype 代表表中的整行的数据
使用方式:
变量名 表名.属性名%rowtype;
declare v_row user_book%rowtype;
begin
-- 赋值
select * into v_row from user_book where user_book.userid=9999; -- 输出行中的数据: 注意此时必须手动将行内的所有字段写入输出语句,否则会报错
dbms_output.put_line(v_row.uname||v_row.userid||v_row.urole );
end;1
2
3
4
5
6
7
8
三、常用的判断语句
1.if else条件判断语句
if 条件1 then 满足条件1时执行的语句 else 条件2 then 满足条件2时执行的语句1
2
3
4
2.case when 语句
case when 条件1 then 满足条件1时执行的代码 when 条件2 then 满足条件2时执行的代码 when 条件3 then 满足条件3时执行的代码 else 以上条件都不满足时执行的代码 end case;1
2
3
4
5
6
7
8
四、常用的循环语句
1.exit when 退出循环:
格式:
loop 循环执行的语句块; exit when循环结束条件; 步进语句; end loop;1
2
3
4
5
例如:
declare v_i int := 0; -- 声明变量
begin
loop dbms_output.put_line(v_i); -- 循环块: 打印v_i exit when v_i >= 10; -- 结束条件 v_i := v_i+1; -- 步进语句
end loop;
end;1
2
3
4
5
6
7
8
9
结果:
2.while循环:
while 循环结束条件
loop
循环体;
步进语句;
end loop;
例如:
declare v_i int := 0; -- 声明变量
begin
while exit when v_i >= 10; -- 结束条件
loop dbms_output.put_line(v_i); -- 循环块: 打印v_i v_i := v_i+1; -- 步进语句
end loop;
end;1
2
3
4
5
6
7
8
9
3.for in 循环:
for 循环索引变量 in [recerse] – reverse: 反向
循环区域下限…循环区域上线
loop
循环语句块;
end loop ;
例如: 倒序打印1到10(即10到1)
declare
begin
for i in reverse 1..10 -- 从1到10 正序 loop dbms_output.put_line(i); -- 打印i end loop;
end;1
2
3
4
5
6
7
8
结果如图:
五、异常
1.什么是异常?
在运行异常时出现的错误叫做异常1
发生异常后,语句将停止执行,控制权转移到PL/SQL块的异常处理部分
2.异常的三种类型:
预定义异常:当PL/SQL程序违反Oracle规则或超越系统限制时隐式引发; 用户不需要在程序中定义; 非预定义异常:当PL/SQL程序违反Oracle规则或超越系统限制时引发; 用户需要在程序中定义; 用户定义异常:需要用户在程序中定义,显式的在程序中引发;1
2
3
4
5
6
7
3.异常处理程序的语法:
begin 常规代码块; exception when 异常条件1满足 then 异常条件1满足时执行的代码 when 异常条件2满足 then 异常条件2满足时执行的代码 when others then 都不满足时执行的代码 end;1
2
3
4
5
6
7
8
4.常见的预定义异常:
-- 数据过多: too_many_rows -- 查询的数据不存在: no_data_found1
2
例如:
declare v_error exception; v_name user_book.uname%type;
begin select uname into v_name from user_book where user_book.userid=100000; -- 此时的userid是不存在的
end;1
2
3
4
5
6
7
图:预定义异常
5.用户自定义异常
declare
declare v_error exception; v_name user_book.uname%type;
begin select uname into v_name from user_book where user_book.userid=1001; if v_name = '张三' then -- 如果满足条件则返回v_error raise v_error; end if; exception when v_error then -- 当出现此异常的时候触发 dbms_output.put_line('原来是张三啊,抛个异常给你吧');
end;1
2
3
4
5
6
7
8
9
10
11
12
13
6.图:满足自定义条件时触发自定义异常
结束
其他部分小白会陆续更新噢,老板麻烦点个赞再走嘛~~~
文章来源: blog.csdn.net,作者:White_i,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/White_i/article/details/109161568
oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...相关推荐
- 在ABAP的SQL语句中写Oracle Hints
在ABAP的SQL语句中写Oracle Hints ①用过的两个写法: 1.指定使用全表扫描:%_HINTS ORACLE 'FULL(table_name)' 2.指定索引:%_HINTS ORAC ...
- php 三元运算 简写,es6 三元运算(三元类目)符语法与简写,多条件判断与??::形式 - Laravel学习网...
三元运算符就是替代传统if-else语句让更简洁. 一.三元运算标准写法 我们传统的写法为: const x = 20; let answer; if (x > 10) { answer = ' ...
- 【Python入门教程】第57篇 循环进阶之模拟do…while语句
本篇我们学习如何在 Python 中模拟 do-while 循环语句. do-while 循环语句 许多编程语言,例如 JavaScript.Java. C# 等,都提供了 do-while 循环语句 ...
- php基础教程 第六步 学习数组以及条件判断switch补充
条件语句 switch 在上一节的学习中,学习了php的条件语句if.在php编程中进行条件判断还可以使用switch语句.switch语句语法如下: <?php switch (值或表达式) ...
- pythoniter雪峰_[雪峰磁针石博客]python3快速入门教程1 turtle绘图-3循环
Published: 日 02 九月 2018 语法基础 for语句 Python的for语句针对序列(列表或字符串等)中的子项进行循环,按它们在序列中的顺序来进行迭代. 1 2 3 4 5 6 7 ...
- oracle中删除表字段 sql语句怎么写,oracle使用sql语句增加字段示例(sql删除字段语句)...
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter ...
- oracle查询表字段sql语句怎么写,oracle联合查询并更新一个表字段的sql语句
更新某一个字段写起来简单,也容易理解: UPDATE tablea A SET A.name=(select name from tableb B where A.id=B.id) 更新多个字段就显得 ...
- oracle insert if语句怎么写,oracle存储过程的调用(insert 语句的存储过程)
//存储过程 create or replace procedure ADDDDD( pid in number, pname in VARCHAR2 ) is begin INSERT INTO s ...
- delete oracle 语句怎么写,Oracle下Delete语句
Delete语句 基本语法: delete from 表名 where 条件 注意事项: 1,如果不使用where子句,将表中所有数据全部删除 delete from test; 2,如果要删除某列的 ...
最新文章
- Kubernetes 弹性伸缩全场景解读(五) - 定时伸缩组件发布与开源
- [WinSock]封装WSAAsyncSelect!
- MATLAB工具箱介绍
- mysql kill_Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)
- android 调用c wcf服务,如何使用命名管道从c调用WCF方法?
- CountDownLatch线程同步辅助
- C#中Math.Round()实现中国式四舍五入
- Unity3D插件 Puppet3D的使用
- AlphaBlend 详解
- C++ 长度不固定的二维数组传参
- day3-作业(18-23)(java泛型总结一)
- Microsoft 365独家安全解决方案
- android实现高德地图集成
- 几张表格怎么联动_在excel 中,怎样实现数据关联?:excel怎么把几个表格的数据联动...
- Qiyuan - 接小球游戏4.0
- CentOS6.5安装部署***服务器
- gitblit+jenkins本地服务
- unity 在game视图模型穿插问题
- 快速上手 Flutter 空安全
- OSChina 周五乱弹 —— 破手机比 2080ti 核动力煤气灶还贵
热门文章
- python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...
- Python实战:利用Tkinter实现屏保程序
- 使用脚本巧解office安装源问题(修正版)
- 如何让SqlParameter的值为null 传入SQL
- maven+junit生成报告
- Win10如何升级Win11详细操作步骤
- 自动化运维工具之pxe+kickstart
- 【CASS精品教程】CASS自动插入DOM影像(附插件下载)
- 雷达覆盖_ssl1232_计算几何
- 下载numpy的时候,出现CondaError错误