国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle存儲過程中去掉重復字符串函數

2024-08-29 13:32:26
字體:
來源:轉載
供稿:網友

  以下函數是本人在編寫oracle數據庫存儲過程時寫的函數,覺得該函數通用性較強,因此發表出來供需要的人參考。

  這個函數的功能主要是用于去除給定字符串中重復的字符串.在使用中需要指定字符串的分隔符.示例:

  str := myreplace('13,14,13,444', ',');

  輸出:

13,14,444
create or replace function myreplace(oldstr varchar2, sign varchar2) return varchar2 is
 str varchar2(1000);
 currentindex number;
 startindex number;
 endindex number;
 type str_type is table of varchar2(30)
    index by binary_integer;
 arr str_type;
 result varchar2(1000);
begin  
 if oldstr is null then
  return ('');
 end if;
 
 str := oldstr;
 
 currentindex := 0;
 startindex := 0;
 loop
  currentindex := currentindex + 1;
  endindex := instr(str, sign, 1, currentindex);
  if (endindex <= 0) then
   exit;
 end if;
  
 arr(currentindex) := trim(substr(str, startindex + 1, endindex - startindex - 1));
 startindex := endindex;
 end loop;

  取最后一個字符串:

arr(currentindex) := substr(str, startindex + 1, length(str));

  去掉重復出現的字符串:

for i in 1.. currentindex - 1 loop
 for j in i + 1..currentindex loop
  if arr(i) = arr(j) then
   arr(j) := '';
  end if;
 end loop;
 end loop;
 str := '';
 for i in 1..currentindex loop
 if arr(i) is not null then
  str := str || sign || arr(i);

  數組置空:

arr(i) := '';
 end if;
 end loop;

  去掉前面的標識符:

result := substr(str, 2, length(str));
 return(result);
end myreplace;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 溧水县| 余干县| 沧州市| 苍山县| 汾阳市| 连平县| 鄂托克旗| 舞钢市| 同仁县| 屏山县| 汶上县| 兴化市| 昌都县| 璧山县| 灯塔市| 石阡县| 武川县| 宿迁市| 广饶县| 浪卡子县| 赞皇县| 莱阳市| 邢台县| 湟中县| 台南县| 阿拉善左旗| 柳林县| 都江堰市| 元朗区| 泸定县| 军事| 筠连县| 扎兰屯市| 拉萨市| 长宁县| 台南县| 垣曲县| 万荣县| 邯郸县| 呈贡县| 铜鼓县|