Skip to content

Commit a948c4c

Browse files
author
sunguangming
committed
Merge branch 'release/21.7.9' into main
2 parents ea56a8f + c5043aa commit a948c4c

240 files changed

Lines changed: 9894 additions & 1548 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
22.0.beta
1+
22.0.beta

db/dm_function.sql

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,54 @@ CREATE OR REPLACE FUNCTION FIND_IN_SET
55
p_sep varchar2 := ',')
66
RETURN NUMBER
77
IS
8-
l_idx number:=0; -- 用于计算piv_str2中分隔符的位置
9-
str varchar2(500); -- 根据分隔符截取的子字符串
10-
piv_str varchar2(500) := piv_str2; -- 将piv_str2赋值给piv_str
11-
res number :=0; -- 返回结果
8+
l_idx number:=0;
9+
str varchar2(500);
10+
piv_str varchar2(500) := piv_str2;
11+
res number :=0;
1212
loopIndex number :=0;
1313
BEGIN
14-
-- 如果piv_str中没有分割符,直接判断piv_str1和piv_str是否相等,相等 res=1
1514
IF instr(piv_str, p_sep, 1) = 0 THEN
1615
IF piv_str = piv_str1 THEN
1716
res := 1;
1817
END IF;
1918
ELSE
20-
-- 循环按分隔符截取piv_str
2119
LOOP
2220
l_idx := instr(piv_str, p_sep);
2321
loopIndex:=loopIndex+1;
24-
-- 当piv_str中还有分隔符时
2522
IF l_idx > 0 THEN
26-
-- 截取第一个分隔符前的字段str
2723
str:= substr(piv_str, 1, l_idx-1);
28-
-- 判断 str 和piv_str1 是否相等,相等 res=1 并结束循环判断
2924
IF str = piv_str1 THEN
3025
res:= loopIndex;
3126
EXIT;
3227
END IF;
3328
piv_str := substr(piv_str, l_idx+length(p_sep));
3429
ELSE
35-
-- 当截取后的piv_str 中不存在分割符时,判断piv_str和piv_str1是否相等,相等 res=1
3630
IF piv_str = piv_str1 THEN
3731
res:= loopIndex;
3832
END IF;
39-
-- 无论最后是否相等,都跳出循环
4033
EXIT;
4134
END IF;
4235
END LOOP;
43-
-- 结束循环
4436
END IF;
45-
-- 返回res
4637
RETURN res;
4738
END FIND_IN_SET;
48-
/
39+
40+
--
4941

5042
CREATE OR REPLACE FUNCTION "IF"(
51-
p_condition BOOLEAN, -- 判断条件
52-
p_true_val ANYTYPE, -- true分支返回值(任意类型)
53-
p_false_val ANYTYPE -- false分支返回值(任意类型)
54-
) RETURNS ANYTYPE
43+
p_condition BOOLEAN,
44+
p_true_val ANYTYPE,
45+
p_false_val ANYTYPE
46+
) RETURN ANYTYPE
5547
AS
5648
BEGIN
57-
-- 仅校验条件非空,不校验类型
5849
IF p_condition IS NULL THEN
5950
RAISE_APPLICATION_ERROR(-20001, '判断条件不能为NULL');
6051
END IF;
6152

62-
-- 核心逻辑:直接返回不同类型值
6353
IF p_condition THEN
64-
RETURN p_true_val; -- 如:字符串
54+
RETURN p_true_val;
6555
ELSE
66-
RETURN p_false_val; -- 如:数值
56+
RETURN p_false_val;
6757
END IF;
6858
END;
69-
/

0 commit comments

Comments
 (0)