Oracle之PL/SQL
基础语法
[declare
--定义部分]
begin
--执行部分
[exception
--异常处理部分]
end;
其中,定义部分以declare开始,该部分是可选的;执行部分以begin开始,该部分是必须的
异常部分以exception开始,该部分是可选的.而end则是pl/sql块的结束标记.
注意我使用的Oracle安装时自带的 SQL Plus请注意第一行命令.否则控制台不输出内容.
当结束时,请输入 / 然后回车.
常用变量类型
char() varchar2() number() date;
运算符与表达式
if分支语句
if 条件 then
执行语句;
elsif 条件 then
执行语句;
else
执行语句;
end if;
(这个写法去掉 then 和java中的 if else if else 一样.看起来好恶心的语法 )记得最后end if; 结尾
切记 除了 else 分支其他分支都要带 then
case语句
case 条件
when 值 then 执行语句
when 值 then 执行语句
....
else 执行语句
end;
case 是可以有返回值的.
将 case 的执行结果赋值给 b; 但是,如果我们让case 有返回值,在case语句结束后就不能是 end case;而只能是end;
循环语句
基本循环
loop
执行体
exit when 条件;
end loop;
注意!这种写法,执行体肯定会执行一次.而 exit 中的条件满足是 停止循环.
程序自上而下执行.
while循环
while 条件 loop
循环体
end loop;
for循环
for 被循环结果赋值 in [reverse] 开始..结束 loop
循环体
end loop;
可以看出for循环的 执行顺序是 判断开始和结束条件.满足赋值给 i.执行循环体,然后再次判断.
for循环中的 i 可以不被声明. 开始条件和结束条件也可以是变量,但是只能是number类型
但是如果被赋值的变量不存在.则无法在循环调用结束后使用该变量.
reverse 的作用则是 ++ 变成 --
goto语句一个破坏力极强的语句
goto 将跳转到 定义好的 标记处.设置标记的 符号为 <<标记>>
null
null特殊的很.首先两个null不相等 null本身不等于null ,判断是否为null 只能使用 is null
复合变量
标准变量只可以保存单个数值,与之对应的就是复合变量.复合变量可以将不同数据类型的多个值
存储在同一个单元中.
%type变量
此变量为不确定类型的变量.变量的具体类型由赋值给他的表字段类型一致.
使用 select into 语句可以将查询出来的值赋值给变量;但是注意使用%type赋值
必须保证赋值的结果是单行单列.
%rowtype变量
%rowtype声明表示一行记录的变量(一个对象),你将一个表中的数据结构赋值给变量x
Oracle之PL/SQL的更多相关文章
- Oracle中PL/SQL的执行部分和各种流程控制
Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...
- Oracle中PL/SQL简介、基本语法以及数据类型
Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...
- 使用oracle 的 PL/Sql 定时执行一个存储过程
CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- 【SQL】Oracle的PL/SQL语法及其拓展数据类型总结
PL/SQL语法 PL/SQL程序由三部分组成,声明部分.执行部分.异常处理部分. 模板: DECLARE /*变量声明*/ BEGIN /*程序主体*/ EXCEPTION /*异常处理部分*/ E ...
- Oracle实践--PL/SQL表分区的基础
PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure Language)和结构化语言(Structured Query Language)结合而成的编程语言.是对SQL的扩展.支 ...
- C#(在WeBAPI)获取Oracle(在PL/SQL)游标类型的存储过程(用到了RefCursor)
需求:WebAPI服务端,通过Oracle数据库的存储过程,获取数据. 在PL/SQL 建立存储过程:(先来最简单的,就是把整个表都查出来) create or replace procedure S ...
- 【Oracle】PL/SQL 显式游标、隐式游标、动态游标
在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...
- Oracle数据库PL/SQL那点事情---修改过电脑的用户名
在安装Oracle数据库的PL/SQL工具时候,电脑名称是重装系统后自动生成的用户名名称,作为程序员,有很强的强迫症,就想利用自己的英文名称作为自己电脑的名称,所以就修改了电脑的名称:结果PL/SQL ...
- ORACLE FORMS PL/SQL PACKAGE SHOW TIPS WINDOW
--在开发ORACLE FORM的程序中,要编写PL/SQL程序包产出异常情况时,直接在FORM弹出一个异常提示窗口 DECLARE BEGIN app_exception.raise_excepti ...
随机推荐
- mysql error 1364 Field doesn't have a default values
https://stackoverflow.com/questions/15438840/mysql-error-1364-field-doesnt-have-a-default-values. us ...
- postman强大的团队协作功能
今天无意在调项目的接口 ,使用的postman工具 ,自己写的接口信息,只能自己看 ,感觉有点不方便,如果一个公司多名测试,如果一个人写接口信息,大家都能用,就会很节约时间 所以团队协作的功能就诞生了 ...
- scrapy框架抓取表情包/(python爬虫学习)
抓取网址:https://www.doutula.com/photo/list/?page=1 1.创建爬虫项目:scrapy startproject biaoqingbaoSpider 2.创建爬 ...
- PHP获得毫秒数
因为前端需要写函数处理时间戳,比较麻烦,所以我们有的时候,需要接口传递毫秒数给前端. 下面可以通过这个函数来获得毫秒数 <?php function getMillisecond() { lis ...
- Android Activity之间的数据传递
1.向目标Activity传递数据: Intent intent=new Intent(this,Main2Activity.class); //可传递多种类型的数据 intent.putExtra( ...
- AI 图像识别的测试
随着AI 的浪潮发展,AI 的应用场景越来越广泛,其中计算机视觉更是运用到我们生活中的方方面面.作为一个测试人员,需要紧跟上 AI 的步伐,快速从传统业务测试,转型到 AI 的测试上来.而人脸识别作为 ...
- 在js中==和===的区别
“==”:叫相等运算符 “===”:叫严格运算符 它们两有什么区别呢? == :表示值相等则都为true ===:表示 不仅要值相等,双方类型也要相等才为true 例子如下: js代码如下: // “ ...
- Java垃圾回收。
一:如何确定哪些对象应该被回收. 1.引用记数法.在对象中添加一个引用计数器,每当有一个地方引用它时,计数器加一,引用失效时,计数器减一,当计数器为0时,该对象是不可用的. i:缺陷:会产生循环 ...
- 多任务学习Multi-task-learning MTL
https://blog.csdn.net/chanbo8205/article/details/84170813 多任务学习(Multitask learning)是迁移学习算法的一种,迁移学习可理 ...
- docker研究-6 dockerfile 介绍使用
Dockerfile是用来创建镜像的,首字母必须大写.