DECLARE
S VARCHAR2(200);
T VARCHAR2(10000);
BEGIN
T := '苏F14898,苏F14899,苏F14900,苏F14901,苏F14902,苏F14903';
--DBMS_OUTPUT.PUT_LINE('第几个位置:' || INSTR(T, ','));
--DBMS_OUTPUT.PUT_LINE('取得的字符串:' || SUBSTR(T, INSTR(T, ',') + 1));
--S := SUBSTR(T, INSTR(T, ',') + 1);
--DBMS_OUTPUT.PUT_LINE('S:' || S);
WHILE INSTR(T, ',') > 0 LOOP
S := TRIM(SUBSTR(T, 1, INSTR(T, ',') - 1));
DBMS_OUTPUT.PUT_LINE('S:' || S);
T := SUBSTR(T, INSTR(T, ',') + 1);
END LOOP;
END;
相关知识:
================================================================
Oracle中INSTR方法
INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring"FROM DUAL的显示结果是
Instring
——————
14
================================================================
Oracle/PLSQL: While Loop
The syntax for the WHILE Loop is:
WHILE condition
LOOP
{.statements.}
END LOOP;
You would use a WHILE Loop when you are not sure how many times you will execute the loop body. Since the WHILE condition is evaluated before entering the loop, it is possible that the loop body may not execute even once.
译:当你不确定循环体有多少次的时候,可以使用WHILE LOOP。因为在进入循环以前,WHILE的条件是先给的,因为可能循环体不止执行一次。
Let's take a look at an example:
WHILE monthly_value <= 4000
LOOP
monthly_value := daily_value * 31;
END LOOP;
In this example, the WHILE Loop would terminate once the monthly_value exceeded 4000.
译:在该示例中,WHILE循环将会在monthly_value的值达到4000时终止。
分享到:
相关推荐
oracle存储过程中入参是逗号分隔,并且参数要使用在in过滤语句中查询数据。处理的方法与实现
Oracle拆分字符串,字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。
oracle分隔字符串,分隔一个字符串成多个字符串,分隔条件按照用户自定义
Oracle 分割字符串 返回多行数据
oracle 关于字符串中带有逗号间隔的查询 例如 我想查出dwdh中有“飞信”的内容(不包括移动飞信,飞信移动) 关于字符串中带有逗号间隔的查询 利用like
* 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...
string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个字符开始正则表达式匹配(默认为1) occurrence :标识第几个匹配组,默认为1 modifier :模式(‘i’不区分大...
NULL 博文链接:https://czjxdm.iteye.com/blog/466948
如何实现Oracle中字符串分隔.pdf
aaa,bbb,ccc n=2时 截取结果 bbb 很明白了吧 哈
oracle中没有方便分割字符串的的函数,仿照c#中的split方法和网友的方法,并进行了改进,(1)先自定义个类型str_split,(2)分割函数splitstr,返回table;(3)取第n个数组的get_splitstr,用户1,2,3部建好,使用时只需要...
不做详解,直接上图。 SELECT T.NAME, T.TESTSTR FROM TEST2 T; SELECT DISTINCT T.NAME, REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR FROM TEST2 T WHERE 1 = 1 ...
- - 使用此工具,必须有明确的行分隔符标记,且换行符标记不可在字符串中出现。否则无法使用,需要修改匹配搜索方式 ### 工具效率: 亲测200M文件5s中完成转换。 ### 使用示例: Windows: go_readfileline.exe...
Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。 一、最终实现的sql语句 1、获取交集(相同值)...
自定义聚集函数拼接字符串,根据网上常见的例子加以改进,可以自定义分隔符(利用的自定义type)。
oracle 某列存儲的值是有逗號的字符串,希望通過逗號分隔開來顯示多行。sql,有預期結果,有項目實戰。
找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。
实现ORACLE字符串按分隔符切割并转换成多行数据,参考附件中样例即可轻松实现
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]asp.net实现方法如下: 代码如下: /// <summary> /// 格式化一组如:”,,a,s,,,d,c”的字符串为标准的分隔字符串如:”a,s,d,c”; /// </summary> /// ”str”>ref ...