create or replace function STR_LENGTH(str1 varchar2,str2 varchar2)
return varchar2
is
returnstring varchar2(5);
len integer;
len1 integer;
len2 integer;
strconact varchar2(6000);
begin
returnstring:='0';
-- strconact:=str1||str2;
select myreplace(str1||','||str2,',') into strconact from dual;
len1:=length(str1);
len2:=length(str2);
len:=length(strconact);
if len<(len1+len2) then
returnstring:='1';
end if;
return(returnstring);
end STR_LENGTH;
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;
相关推荐
达梦数据库数组类型定义和数组内元素增加/删除/查询
指针数组:数组类型 *数组名[数组长度]; 例:int *parr[5]; 数组指针:类型名 (*指针名)[数组长度]; 例:int (*parr)[5]; 现在我们再来通过上面的定义来分析一下指针数组和数组指针。 int *parr[5];因为优先级的关系...
本文教你一种定义结构体类型变量的方法。
[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,...
数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。 注意:如果...
WebGL着色器和javascript语言、C语言一样 可以声明数组类型变量,不过WebGL着色器的数据仅仅支持一维数组,不支持多维数组。 声明语法结构 数组元素的数据类型 数组变量名[数组元素个数] // 声明一个数组变量fArr,...
当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量。 另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种...
数组的定义:数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组的三个...
数组是一组连续可索引的具有相同内在数据类型的元素所成的集合,在未指定为变体变量情况下。 2、上界、下界和下标 上界:数组某一维可用的最大下标。用Ubound 函数表示。 下界:数组某一维的最小下标。默认最小下标...
数据类型 变量常量的定义 数组 类型转换 运算符 控制结构
该方法应返回一个int型的数值,参数为数组类型。在方法中,定义一个临时变量min,用于记住数组的最小值。首先假设数组中第一个元素arr[0]为最小值,然后使用for循环对数组进行遍历,在遍历的过程中只要遇到比min值还...
仿照Pascal语言,对pl0编译程序(清华大学书后源码)进行以下简单扩展—— 不等号: 指针: & @ if - else for ++ -- += -= 数组 程序还有多不足,希望和大家共同学习!!
* 如何定义数组? * 数组类型【】 数组名; * * 如果数组定义好以后,必须得进行初始化 * 数组的初始化一共有两种: * 1.动态初始化:需要指定数组的长度,长度指的是数组中能存多少数据,数组的...
还可以使用另一种方法定义数组,例如: int a[]; 以上这两种方法的定义是等价的。在这里只定义了一个整型数组变量 a,但是还没有将 a 真正的初始化为一个数组。为将一个数组初始化可以使用 new 关键字,也可以...
数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1、…、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、...
针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。 •※注意:定义数组时不能指定数组的长度。 数组的初始化 •静态初始化:初始化时由程序员显式指定每个数组的初始值...
#include using namespace std;... //结构体变量名定义 int day; int year; }; struct teacher { int num; char name[20]; struct date birthday; //结构体的嵌套定义 int salary; char addr[30]; };...
//声明一个字符串类型的数组 //创建数组 //声明数组的同时进行创建 //初始化数组 //循环为整型数组赋值 //循环输出整型数组中的元素 //求整形数组的累加和 //定义整形数组 //从键盘接收数据,为数组元素赋值 //求...
数组类型可以是任何数据类型,包括基本类型和引用类型。 注意事项: 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论...
定义结构体类型 定义结构体类型变量 引用结构体变量 给结构体变量赋值 结构体的嵌套 结构体数组 指向结构体类型变量的指针