`
linuxstuding
  • 浏览: 1259382 次
文章分类
社区版块
存档分类
最新评论

Oracle中INSTR和SUBSTR的用法

 
阅读更多

Oracle中INSTR的用法:
INSTR方法的格式为
INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)
返回找到的位置,如果找不到则返回0.
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 在字符串中查找'OR',从第三个字符位置开始查找"OR",取第三个字后第2个匹配项的位置。

默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。

所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "aaa" FROM DUAL的显示结果是

Instring
——————
14


oracle的substr函数的用法:
取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] )
如:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'

select substr('Thisisatest', -4, 2) value from dual


综合应用:
SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL
--INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" FROM DUAL

SELECT INSTR('32.8,63.5',',', 1, 1) "Instring" FROM DUAL

SELECT SUBSTR('32.8,63.5',INSTR('32.8,63.5',',', 1, 1)+1) "INSTRING" FROM DUAL
SELECT SUBSTR('32.8,63.5',1,INSTR('32.8,63.5',',', 1, 1)-1) "INSTRING" FROM DUAL

-- CREATED ON 2008-9-26 BY ADMINISTRATOR
DECLARE
-- LOCAL VARIABLES HERE
T VARCHAR2(2000);
S VARCHAR2(2000);
NUM INTEGER;
I INTEGER;
POS INTEGER;
BEGIN
-- TEST STATEMENTS HERE
T := '12.3,23.0;45.6,54.2;32.8,63.5;';
SELECT LENGTH(T) - LENGTH(REPLACE(T, ';', '')) INTO NUM FROM DUAL;
DBMS_OUTPUT.PUT_LINE('NUM:' || NUM);
POS := 0;
FOR I IN 1 .. NUM LOOP
DBMS_OUTPUT.PUT_LINE('I:' || I);
DBMS_OUTPUT.PUT_LINE('POS:' || POS);
DBMS_OUTPUT.PUT_LINE('==:' || INSTR(T, ';', 1, I));
DBMS_OUTPUT.PUT_LINE('INSTR:' || SUBSTR(T, POS + 1, INSTR(T, ';', 1, I) - 1));
POS := INSTR(T, ';', 1, I);
END LOOP;
END;


-- Created on 2008-9-26 by ADMINISTRATOR
declare
-- Local variables here
i integer;
T VARCHAR2(2000);
S VARCHAR2(2000);
begin
-- Test statements here
--历史状态
T := '12.3,23.0;45.6,54.2;32.8,63.5;';
IF (T IS NOT NULL) AND (LENGTH(T) > 0) THEN
--T := T || ',';
WHILE LENGTH(T) > 0 LOOP
--ISTATUSID := 0;
S := TRIM(SUBSTR(T, 1, INSTR(T, ';') - 1));
IF LENGTH(S) > 0 THEN
DBMS_OUTPUT.PUT_LINE('LAT:'||SUBSTR('32.8,63.5',1,INSTR('32.8,63.5',',', 1, 1)-1));
DBMS_OUTPUT.PUT_LINE('LON:'||SUBSTR('32.8,63.5',INSTR('32.8,63.5',',', 1, 1)+1));
/* INSERT INTO T_HISTORY_RESPONSESTATUS
(HISTORYID, RESPONSESTATUSID, STAMP, CALL_LETTER)
VALUES
(IHISTORYID, S, ISTAMP, ICALL_LETTER);
*/ -- COMMIT;
END IF;
T := SUBSTR(T, INSTR(T, ';') + 1);
END LOOP;
END IF;
end;


分享到:
评论

相关推荐

    Oracle中instr和substr存储过程详解

    总的来说,`instr`和`substr`是Oracle数据库中强大的文本处理工具,它们提供了对字符串和大对象的强大操作能力,使得开发人员能够高效地处理和分析数据。理解并熟练运用这两个函数,对于优化Oracle数据库应用程序的...

    Oracle中的INSTR,NVL和SUBSTR函数的用法详解

    在Oracle数据库中,有三个非常重要的字符串处理函数:INSTR、NVL和SUBSTR。这些函数在处理文本数据时起到至关重要的作用。 1. **INSTR函数**: INSTR函数用于在一个字符串中查找另一个子字符串的位置。其基本语法...

    oracle中substr函数详细用法

    在Oracle数据库中,`SUBSTR`和`INSTR`函数是非常重要的字符串处理函数,它们在数据操作和查询中发挥着关键作用。本文将详细介绍这两个函数的用法,并结合`CASE WHEN`语句来解决特定的问题。 `SUBSTR`函数用于从一个...

    Oracle的substr和instr函数简单用法

    Oracle数据库中的`substr`和`instr`函数是两个非常实用的字符串处理函数,它们在数据库查询和数据处理中扮演着重要角色。 `substr`函数,全称为“substring”,用于从一个字符串中截取一部分。其基本语法是: ```...

    informix数据库实现oracle环境instr函数功能

    根据题目描述和标签,本案例的核心需求是:在Informix数据库中创建一个自定义函数,该函数能够实现Oracle数据库中`INSTR`函数的功能。具体来说,该函数应该能够接收两个字符串参数以及一个数字参数,并返回第二个...

    INSTR的用法 Oracle里的Indexof

    例如,可以使用INSTR确定子字符串的位置,再使用SUBSTR从主字符串中截取特定部分。 ##### 5.3 在查询条件中使用 INSTR函数也可以作为查询条件的一部分,用于筛选满足特定条件的记录。例如,可以使用INSTR检查某个...

    oracle dbms_lob

    通过阅读如“Oracle中的包――DBMS_LOB(一).pdf”、“ORACLE LOB大对象处理.pdf”和“DBMS_LOB包的使用.pdf”等资料,可以深入理解这些概念,并通过实践来熟练掌握。同时,“dbms_lob包学习笔记之二:append和...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分...Oracle 中实现 Split 函数功能可以大大提高数据处理和分析的效率和灵活性。

    Oracle中的instr()函数应用及使用详解

    Oracle中的`instr()`函数是一个非常实用的字符串处理函数,它用于在源字符串中查找目标字符串出现的位置。这个函数尤其在数据库查询和数据处理时发挥着重要作用。以下是对`instr()`函数的详细说明: 1. **函数基本...

    substr函数用法.docx

    通过了解和熟练使用`substr`函数,你可以更好地处理和操纵SQL中的字符串数据,从而提升数据库查询和数据处理的效率。在实际应用中,结合其他字符串函数如`instr`、`length`等,可以解决许多复杂的数据处理问题。

    Oracle拆分字符串,字符串分割的函数

    例如,我们有一个以逗号分隔的字符串,如"apple,banana,orange",我们可以使用`instr()` 和 `substr()` 结合来逐个获取每个水果名称: ```sql SELECT substr(str, 1, instr(str, ',', 1) - 1) fruit1, substr...

    oracle中字符串截取

    本文将详细介绍Oracle中的字符串截取功能及其应用场景,包括常用的`INSTR`和`SUBSTR`函数,并通过具体示例展示如何在实际工作中灵活运用这些函数来满足不同的需求。 #### 二、`INSTR`函数 `INSTR`函数用于查找一个...

    oracle截取表字段中带分号的信息的存储过程

    在每次循环中,我们使用 SUBSTR 函数来截取字符串,并使用 INSTR 函数来查找分号的位置。最后,我们使用 DBMS_OUTPUT.PUT_LINE 函数来输出结果。 方法二 在方法二中,我们使用了 FOR 循环来截取表字段中带分号的...

    Oracle正则表达式详解(用法+实例)

    Oracle 10g 引入了一系列新的函数来支持正则表达式的使用,包括 `REGEXP_LIKE`、`REGEXP_INSTR`、`REGEXP_SUBSTR` 和 `REGEXP_REPLACE`。这些函数的使用方式类似于传统的 SQL 函数 `LIKE`、`INSTR`、`SUBSTR` 和 `...

    oracle数据库截取字符串

    Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分,语法为 `substr(string, ...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,它们用于处理行集,计算基于特定窗口内的数据的聚合值。分析函数的主要特点是返回的结果不仅仅是一行,而是多行,这与传统的聚合函数(如SUM, AVG等)...

Global site tag (gtag.js) - Google Analytics