create or replace function Get_StrArrayLength
(
av_str varchar2, --要分割的字符串
av_split varchar2 --分隔符号
)
return number
is
lv_str varchar2(1000);
lv_length number;
begin
lv_str:=ltrim(rtrim(av_str));
lv_length:=0;
while instr(lv_str,av_split)<>0 loop
lv_length:=lv_length+1;
lv_str:=substr(lv_str,instr(lv_str,av_split)+length(av_split),length(lv_str));
end loop;
lv_length:=lv_length+1;
return lv_length;
end Get_StrArrayLength;
提取
create or replace function Get_StrArrayStrOfIndex
(
av_str varchar2, --要分割的字符串
av_split varchar2, --分隔符号
av_index number --取第几个元素
)
return varchar2
is
lv_str varchar2(1024);
lv_strOfIndex varchar2(1024);
lv_length number;
begin
lv_str:=ltrim(rtrim(av_str));
lv_str:=concat(lv_str,av_split);
lv_length:=av_index;
if lv_length=0 then
lv_strOfIndex:=substr(lv_str,1,instr(lv_str,av_split)-length(av_split));
else
lv_length:=av_index+1;
lv_strOfIndex:=substr(lv_str,instr(lv_str,av_split,1,av_index)+length(av_split),instr(lv_str,av_split,1,lv_length)-instr(lv_str,av_split,1,av_index)-length(av_split));
end if;
return lv_strOfIndex;
end Get_StrArrayStrOfIndex;
Oracle 11g调用函数的五种方法简介
以下的文章主要是介绍的介绍,如果你对Oracle 11g调用函数的相关方案有个更好的理解的话,会对你在Oracle 11g的实际应用中又更好的了解,以下就是文章的详细介绍。
1. 该函数接受3个可选参数,返回3个数字的和
CREATE OR REPLACE FUNCTION add_three_numbers ( a NUMBER:=0, b NUMBER:=0, c NUMBER:=0 ) RETURN NUMBER IS BEGIN RETURN a+b+c; END;
调用FUNCTION add_three_numbers
(1). 在Oracle 11g中位置表示法调用函数
BEGIN dbms_output.put_line(add_three_numbers(2,4,5)); END;
(2). 命名表示法调用函数
BEGIN dbms_output.put_line(add_three_numbers(b=>3, a=>4,c=>2)); END;
(3). 混合使用位置表示法和命名表示法调用函数
BEGIN dbms_output.put_line(add_three_numbers(3, b=>4,c=>2)); END;
(4). 排除表示法
BEGIN dbms_output.put_line(add_three_numbers(12,c=>2)); END;
(5). sql调用表示法 --混合表示法
SELECT add_three_numbers(3, b=>4,c=>2) FROM DUAL; 上述的相关内容就是对Oracle 11g 调用函数的几种方法的描述,希望会给你带来一些帮助在此方面。