一个简单的oracle函数返回数组的例子

本文介绍了使用PL/SQL进行字符串分割的方法,包括创建类型、函数来返回分割后的字符串数组,并通过具体例子展示了如何实现字符串的高效分割及去除重复字符。

create or replace type t_ret_table is table of varchar2(20);

create or replace function f_test(var_num in integer) return t_ret_table is
var_out t_ret_table;
begin
var_out := t_ret_table();
var_out.extend(var_num);
for i in 1..var_num loop
var_out(i) := i;
end loop;
return var_out;
end f_test;
/

 

set serverout on
declare
aa t_ret_table;
begin
aa := f_test(10);
for i in 1..aa.count loop
dbms_output.put_line(aa(i));
end loop;
end;
/

一个分隔字符串的例子:
把'a|||b|||c'字符串分隔成
a
b
c

create or replace function f_test(var_str in string) return t_ret_table is
var_out t_ret_table;
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
var_out := t_ret_table();
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
var_out.extend(1);
var_out(var_out.count) := var_element;
end loop;
var_out.extend(1);
var_out(var_out.count) := var_tmp;
return var_out;
end f_test;
/


set serverout on
declare
aa t_ret_table;
begin
aa := f_test('a|||b|||c');
for i in 1..aa.count loop
dbms_output.put_line(aa(i));
end loop;
end;
/



create or replace function f_test(var_str in string) return t_ret_table PIPELINED
as
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
pipe row(var_element);
end loop;
pipe row(var_tmp);
return;
end f_test;
/


select * from table(f_test('a|||b|||c'));

另外一个分割字符串的例子:

分割字符串问题!

问题源自http://www.itpub.net/626418.html

/*

怎样支掉字符串中逗号间重复的字符
如 ',1,2,5,9,1,2,5,9,1,2,9,1,2,9,1,2,3,9,1,2,3,9,1,2,9,1,2,9,1,2,3,9,1,2,3,9,'怎样支掉字符串中逗号间重复的字符,并将字符升序排列,得到
',1,2,3,5,9,'
百思不得其解,是高手的试一下。

解答:
select col from(
select sys_connect_by_path(col,',')||',' col,level from(
select col,row_number() over(order by rownum) rn from (
select distinct substr(col,instr(col,',',1,rownum)+1,instr(col,',',1,rownum+1)-instr(col,',',1,rownum)-1) col from (
select ',1,2,5,9,1,2,5,9,1,3,9,' col from dual
) connect by rownum<length(translate(col,','||col,','))
)
)
connect by prior rn = rn -1 order by level desc
) where rownum=1

*/

这个问题的解决办法中的一部分(按照固定分隔符分割字符串)可以解决http://www.itpub.net/515354.html

/*

要求用pl/sql写一个函数, 实现根据分割符把原字符串分成若干个字符串功能.

输入: string(字符串) 和 Delimiter (分隔符)
输出: substr1, ..., substrn (根据分割后的字符串排序, 不是子串在原字符串中的顺序)

解答:

select substr(col,instr(col,',',1,rownum)+1,instr(col,',',1,rownum+1)-instr(col,',',1,rownum)-1) col from (
select ',1,2,5,9,1,2,5,9,1,3,9,' col from dual
) connect by rownum<length(translate(col,','||col,','))

*/

 
内容概要:本文详细介绍了baoyu-skills如何通过模块化组件与可视化编排实现AI漫剧工业化生产的工作流自动化。文章从传统AI漫剧生产存在的环节脱节、标准不一、修改成本高等痛点出发,提出baoyu-skills以“组件封装—流程编排—自动执行”为核心逻辑,将剧本拆解、分镜生成、画面渲染、配音配乐、剪辑合成等环节无缝串联,形成从文本输入到MP4成品输出的标准化闭环流程。通过可视化拖拽或API代码两种方式,用户可快速构建可复用的工作流模板,实现批量高效生产。文中还提供了完整的操作步骤、参数配置建议、开发接口示例及避坑指南,并通过性能对比表证明该方案可将10集漫剧生产时间从2-3天压缩至8-10小时,提升效率超80%。; 适合人群:从事AI内容创作的技术人员、内容工业化生产团队、希望提升漫剧批量制作效率的运营与开发者,以及具备一定AI工具使用经验的内容创作者; 使用场景及目标:① 实现AI漫剧从文本到动态视听的全自动流水线生产;② 构建标准化、可复用的工业级内容生产流程,降低人力成本与容错率;③ 快速对接多种AI服务(如Kimi、Seedance、阿里云配音等),打通多工具链路; 阅读建议:此资源强调实战落地,建议结合文档中的参数配置与代码示例,在baoyu-skills平台上边操作边学习,优先通过可视化编排熟悉流程逻辑,再进阶使用API进行定制开发,确保工作流稳定性和产出一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值