首页 > 其他分享 >【DM】根据指定字符分割字符串,返回表

【DM】根据指定字符分割字符串,返回表

时间:2024-02-04 15:02:31浏览次数:28  
标签:字符 DM strval -- SPLITSTR 字符串 TYPE id ROW

一、创建记录
CREATE OR REPLACE TYPE TYPE_ROW_SPLITSTR AS OBJECT (
  id INT,
  val NVARCHAR(500)
);

二、创建嵌套表
CREATE OR REPLACE TYPE TYPE_TABLE_SPLITSTR  is TABLE OF TYPE_ROW_SPLITSTR;

三、自定义函数

CREATE OR REPLACE FUNCTION splitTable( strval IN TEXT, splitstr IN CHAR(1) ) RETURN TYPE_TABLE_SPLITSTR AUTHID DEFINER PIPELINED AS R Type_Row_SplitStr; --每一行 i INT; --自定义截取字符串开始值 id INT; --自定ID tmpstr1 TEXT; --截取后的值 BEGIN id:=1; --INSTR(char1,char2[,n,[m]]) --从 char1 的第 n 个字节开始查找字符串 char2 的第 m 次出现的位置 i:=INSTR(strval,splitstr); while i>0 loop tmpstr1 :=substring(strval,1,i-1); strval :=substring(strval,i+1,len(strval)+i); R := Type_Row_SplitStr(id, tmpstr1); PIPE ROW (R); i :=INSTR(strval,splitstr); id :=id+1; end loop; if ifnull(strVal,'')<>'' then R := Type_Row_SplitStr(id,strVal); PIPE ROW (R); end if; END; 用法的:select * From table(splitTable('1,3,5,',','));

 

标签:字符,DM,strval,--,SPLITSTR,字符串,TYPE,id,ROW
From: https://www.cnblogs.com/WuUranus/p/18006174

相关文章

  • 【DM】自定义存储函数(返回字符在字符串中所在位置的下标字符串)
    一、使用while语法--输入:原字符串,查找的字符,分割字符--输出:所在位置下标集合(用输入的分割字符分割)CREATEORREPLACEFUNCTIONdF_strPosition(strInputINVARCHAR(100),strFindinputINVARCHAR(2),strSplitINVARCHAR(2))RETURNVARCHAR(128)ASstrVal......
  • 【DM】判断两个逗号分隔的字符串参数是否存在交集
     CREATEORREPLACEFUNCTIONSIGN_INTERSECTION(V_TAG1VARCHAR2,V_TAG2VARCHAR2)RETURNINTEGERISBEGINIFV_TAG1ISNULLORV_TAG2ISNULLORV_TAG1=''ORV_TAG2=''THENRETURN1;ENDIF;--去掉前缀和尾随逗号V_TAG2......
  • EDM 营销 平台有哪些?3款系统大分析
    在当今数字营销的激烈竞争中,EDM(ElectronicDirectMail)营销平台成为了企业获取客户和推广产品的重要渠道之一。随着市场需求的不断增长,各种EDM营销平台如雨后春笋般涌现,企业在选择合适的平台时往往面临诸多挑战。本文将针对EDM营销平台进行深入分析,探讨其中的3款系统,帮助企业在众多......
  • 【学习笔记】字符串
    1.KMP【模板】KMP朴素的比对是如下的:for(inti=0;i<a.size()-b.size();i++){ for(intj=0;j<b.size();j++){ if(a[i+j]!=b[j])break; if(j==b.size()-1)cout<<i<<''; }}设A串长度\(n\),B串长度\(m\),显然这么做是\(O(nm)\)的。很容易想到一个错误优化:如果失......
  • Problem P06. [算法课分治] 找到 k 个最长重复字符串
    注意是在该子字符串内每个字符的出现次数都不少于k。可以采用分治的方法,函数找一个不符合条件的字符,然后将字符串分成两个子字符串,就这样进行递归运算,每次找到符合条件的子字符串就判断一波长度,然后将最长的长度值存下来。#include<iostream>#include<bits/stdc++.h>#includ......
  • 验证回文字符串
    问题描述:给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例1:输入:"aba"输出:True示例2:输入:"abca"输出:True解释:你可以删除c字符。注意:字符串只包含从a-z的小写字母。字符串的最大长度是50000。publicbooleanvalidPalindrome(St......
  • 反转字符串中元音字母
    问题描述:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例1:输入:"hello"输出:"holle"示例2:输入:"leetcode"输出:"leotcede"classSolution{publicStringreverseVowels(Strings){if(s.length()<=1){return......
  • 反转字符串
    问题描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例1:输入:["h","e"......
  • c语言小练习——字符串长度、拷贝、拼接、比较
    /* 使用c语言知识实现下面程序: 1,实现strlen函数的功能 2,实现strcpy函数的功能 3,实现strcat函数的功能 4,实现strcmp函数的功能 不允许使用已有的str函数*/1#define_CRT_SECURE_NO_WARNINGS2#include<stdio.h>3#include<string.h>4#include<stdbool.h>5#......
  • HDMI2.1之eARC简介-Dolby Atmos和DTS:X
    eARCeARC代表“enhancedAudioReturnChannel”(增强型音频返回通道),是一种用于音频传输的高级技术标准。它是HDMI(HighDefinitionMultimediaInterface,高清晰度多媒体接口)规范的一部分,旨在提供更高质量的音频传输和更多的功能。HDMI论坛提出HDMI2.1版时,一并新增的功能,其全名是E......