Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
白日与明月
gbase8s笔记
提交
87e872fc
G
gbase8s笔记
项目概览
白日与明月
/
gbase8s笔记
通知
31
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gbase8s笔记
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
87e872fc
编写于
11月 25, 2021
作者:
白日与明月
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上传新文件
上级
fea5f372
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
164 addition
and
0 deletion
+164
-0
存储过程.md
存储过程.md
+164
-0
未找到文件。
存储过程.md
0 → 100644
浏览文件 @
87e872fc
# SPL基础
## 概述
-
SPL例程由开始语句、语句块、结束语句组成
-
SPL例程根据是否返回值,分为存储过程和函数
-
语句块由SQL和SPL语句组成。
## 基本语法:
```
sql
-- 存储过程
create
procedure
proc_name
(
param1
data_type1
,
param2
data_type2
..)
sql_code
;
end
procedure
;
-- 函数
create
function
func_name
(
param1
data_type1
,...)
returning
data_type1
[
as
id1
],
data_type2
[
as
id2
]...
sql_code
;
end
function
;
```
语法:
-
变量声明
-
变量赋值
-
条件
-
循环
-
goto
-
loop
-
for/foreach
-
while
-
异常处理
示例:
```
sql
--变量声明
-- 变量声明
create
procedure
test1
()
define
m
,
n
int
;
define
global
i
int
default
1
;
define
global
loginname
varchar
(
20
)
default
'admin'
;
end
procedure
;
create
procedure
test2
()
define
global
i
int
default
0
;
define
global
username
varchar
(
20
)
default
''
;
insert
into
t_user
values
(
i
,
username
);
let
i
=
i
+
1
;
let
username
=
concat
(
"syn_"
,
to_char
(
i
));
end
procedure
;
-- 变量赋值
create
procedure
test3
()
define
userid
int
;
define
sex
varchar
(
20
);
let
userid
,
username
=
1
,
"m"
;
insert
into
t_user
values
(
userid
,
sex
);
-- let var=value;
-- let var1,var2=value1,value2;
-- let var1,var2...=function(args1,args2....);
-- let var1,var2...=(select col1,col2...from tb);
-- case
-- case expr
-- when val_1 then
-- code1;
-- when val_2 then
-- code2;
-- else
-- code3;
-- end case;
create
function
test_func_1
(
sexcode
int
)
returning
varchar
(
10
)
as
sex
define
sex
varchar
(
10
);
case
sexcode
when
1
then
let
sex
=
'男'
;
when
2
then
let
sex
=
'女'
;
else
let
sex
=
'未知'
;
end
case
;
return
sex
;
end
function
;
-- 循环
-- goto
-- << lbl_goto >>
-- spl_code;
-- if expr then
-- goto lbl_goto;
-- end if;
-- loop
-- loop
-- if expr then
-- exit;
-- end if;
-- end loop;
-- for/foreach
-- for i in (start to end ) loop
-- spl_code;
-- end loop;
-- for i in (start to end )
-- spl_code
-- end for;
-- foreach select col1,col2,... into var1,var2...from table
-- spl_code;
-- end foreach
-- while
-- while expr loop
-- spl_code;
-- end loop;
-- while expr
-- spl_code;
-- end while;
create
procedure
test4
()
define
i
int
;
let
i
=
1
;
while
i
<
10
insert
into
table
t_user
values
(
i
,
concat
(
"u_"
,
to_char
(
i
)))
let
i
=
i
+
1
end
while
;
end
procedure
;
create
table
t_class
(
class_id
int
,
class_name
varchar
(
20
)
);
create
table
t_student
(
sid
int
,
username
varchar
(
100
),
age
int
,
sex
varchar
(
5
),
class_id
int
);
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录