过程化SQL、存储过程、自定义函数

1. 过程化SQL

1)基本结构

declare        -- 定义变量、常量、游标、异常
a int :=0;
b float;

begin          -- 执行开始
               -- sql语句及流程控制语句等
ecception      -- 异常处理

end            -- 执行结束

2)变量常量定义

变量名  类型  [:=初始值];

常量名  类型  constant  :=常量表达式;

赋值语句:    变量名  :=  表达式;

3)条件控制语句

-- if then语句
if 条件 then
    语句;
end if

-- if then else语句
if 条件 then
    语句1;
else
    语句2;
end if

4)循环控制语句

-- loop语句,可使用exit、break、leave等结束循环
loop
    语句;
end loop;

-- while loop语句
while 条件 loop
    语句;
end loop;

-- for loop语句
for i in 1..10 loop
    语句;
end loop;

5)过程化SQL

    过程化SQL有两种类型:匿名块和命名块。前者每次执行都需要编译,如果需要将过程化SQL编译后储存在数据库中,就要使用命名块。命名块包括存储过程和自定义函数,两者的区别是后者必需有返回值,而前者非必需。

2. 存储过程

3. 自定义函数

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Java案例-数组求余问题

? 案例分析 要求定义一个int 型数组a,包含100 个元素,保存100个随机的4 位数。再定义一个int 型数组b,包含10 个元素。统计a 数组中的元素...

3304
来自专栏韦弦的微信小程序

Swift 最长公共前缀 - LeetCode

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

733
来自专栏lgp20151222

js遍历 for-of

492
来自专栏和蔼的张星的图像处理专栏

451. 两两交换链表中的节点链表处理

给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 你的算法只能使用常...

593
来自专栏猿人谷

字节大小

首先看一个例子: 1 #include <iostream> 2 using namespace std; 3 4 class A{}; 5 6...

17710
来自专栏行者常至

java.lang.ClassCastException: java.lang.String cannot be cast to com.qbz.entity.TblUser

673
来自专栏Python小屋

Python字符串split()和join()方法应用一例

Python字符串对象提供了大量的方法,其中split()用来以指定的字符串作为分隔符对字符串进行分隔并返回列表,join()方法使用指定的字符串作为连接符对序...

2353
来自专栏GreenLeaves

JavaScript引用类型之Array数组的排序方法

数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1、reverse()    用于反...

1806
来自专栏小樱的经验随笔

isdigit函数

isdigit是计算机应用C语言中的一个函数,主要用于检查参数c是否为阿拉伯数字0到9。 相关函数 isdigit 表头文件 #i...

2608
来自专栏闻道于事

JavaScript数字例子,二分法,冒泡排序

先看一下两个例子: 十个成绩,求总分,最高分,最低分 //输入10个成绩,求总分,最高,最低 var arr=new Array(67,45,5...

2795

扫描关注云+社区