1.我用的是pl/sql.
2,传入的存储过程不定长,以","分隔,比如:aaaaaaaaaa,aaaa,aaa,aa.
3.拆分后的字符串会做为select 语句的条件,整个sp 返回CURSOR 用来fill 一个dataTable.
请大家帮我想想!
谢谢!
2,传入的存储过程不定长,以","分隔,比如:aaaaaaaaaa,aaaa,aaa,aa.
3.拆分后的字符串会做为select 语句的条件,整个sp 返回CURSOR 用来fill 一个dataTable.
请大家帮我想想!
谢谢!
解决方案 »
- oracle 10G优化问题
- oralce查询速度为什么会变快?
- 有关LIKE谓词中使用通配符的问题
- 如何在多表查询的结果集中找出重复的列名
- 急!三天了!oracle10g服务能正常启动,可是SQLPLUS连接不了,“TNS:监听进程不能解析在连接描述符中给出的SERVICE_NAME”
- 求 Oracle10g design的安装文档和技术文档.谢谢
- 十万火急,alter system set processes = 3000 scope = spfile;后,重启了linux,现在oralce没办法启动了。
- 一个概念问题
- 主键,外键,索引等名字放在系统的哪张表里?
- 请问有什么好的调试PL/SQL的工具?谢谢
- 郁闷了3天了:CLOB 和 BLOB的问题
- 在vmware中安装oracle 10g xe 出错!
给出拆分字符串的sql,至于返回cursor的procedure例子很多,改改就可以了。
我给出的这个拆分sql可以在sql中链接使用。
SELECT DECODE(INSTR('aaaaaaaaaa,aaaa,aaa,aa,', ','),
0,
'aaaaaaaaaa,aaaa,aaa,aa,',
SUBSTR('aaaaaaaaaa,aaaa,aaa,aa,',
DECODE(ROWNUM,
1,
1,
INSTR('aaaaaaaaaa,aaaa,aaa,aa,', ',', 1, ROWNUM - 1) + 1),
DECODE(ROWNUM,
1,
INSTR('aaaaaaaaaa,aaaa,aaa,aa,', ',', 1, ROWNUM) - 1,
(INSTR('aaaaaaaaaa,aaaa,aaa,aa,', ',', 1, ROWNUM) -
INSTR('aaaaaaaaaa,aaaa,aaa,aa,', ',', 1, ROWNUM - 1) - 1)))) PROMO_ID
FROM DUAL
CONNECT BY ROWNUM <=
LENGTH('aaaaaaaaaa,aaaa,aaa,aa,') - LENGTH(REPLACE('aaaaaaaaaa,aaaa,aaa,aa,', ',', ''));
;
用replace+connect by来判断需要生成多少条
固定长度的字符串简单的,我原始语句是固定长度的,6位一个字符串