mysql转达梦兼容处理 find_in_set

男娘i 2024-03-23 14:57 77阅读 0赞

dm.jdbc.driver.DMException: 第1 行附近出现错误:

无法解析的成员访问表达式[find_in_set]

  1. CREATE OR REPLACE FUNCTION FIND_IN_SET
  2. (
  3. piv_str1 varchar2,
  4. piv_str2 varchar2,
  5. p_sep varchar2 := ',')
  6. RETURN NUMBER
  7. 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; -- 返回结果
  12. loopIndex number :=0;
  13. BEGIN
  14. -- 如果piv_str中没有分割符,直接判断piv_str1piv_str是否相等,相等 res=1
  15. IF instr(piv_str, p_sep, 1) = 0 THEN
  16. IF piv_str = piv_str1 THEN
  17. res := 1;
  18. END IF;
  19. ELSE
  20. -- 循环按分隔符截取piv_str
  21. LOOP
  22. l_idx := instr(piv_str, p_sep);
  23. loopIndex:=loopIndex+1;
  24. -- piv_str中还有分隔符时
  25. IF l_idx > 0 THEN
  26. -- 截取第一个分隔符前的字段str
  27. str:= substr(piv_str, 1, l_idx-1);
  28. -- 判断 str piv_str1 是否相等,相等 res=1 并结束循环判断
  29. IF str = piv_str1 THEN
  30. res:= loopIndex;
  31. EXIT;
  32. END IF;
  33. piv_str := substr(piv_str, l_idx+length(p_sep));
  34. ELSE
  35. -- 当截取后的piv_str 中不存在分割符时,判断piv_strpiv_str1是否相等,相等 res=1
  36. IF piv_str = piv_str1 THEN
  37. res:= loopIndex;
  38. END IF;
  39. -- 无论最后是否相等,都跳出循环
  40. EXIT;
  41. END IF;
  42. END LOOP;
  43. -- 结束循环
  44. END IF;
  45. -- 返回res
  46. RETURN res;
  47. END FIND_IN_SET;
  48. commit;

原文链接:https://blog.csdn.net/nexttoparadise/article/details/122679955//co

发表评论

表情:
评论列表 (有 0 条评论,77人围观)

还没有评论,来说两句吧...

相关阅读

    相关 bootstrap兼容处理

    bootstrap兼容性处理 > 注意: 里面已经有了初始化文件因此不用在初始化了 > 先导入两个文件以此来支持ie跟响应式 <!--[if lt Ie 9

    相关

    周末早上做了一个梦,梦见自己去参加某个考试。 拿到试卷一看,原来是一道作文题,忘了题目好像是跟人工智能产业发展相关的。我一看蒙了,这个该怎么写才好? 凝思苦想,过了一会,茅