从字符串ORACLE获取特定单词

时间:2012-04-09 06:26:40

标签: oracle plsql

请知道如何使用pl / sql从大字符串中获取特定字符串, 我是创建查询的初学者,所以任何帮助都会有用。 BTW我不想使用这个函数:从* cuz中选择substr( * ,*,*)输入是可变的,所以任何人都可以帮我解决这个问题, 你建议我使用块的实例。

谢谢&的问候,

2 个答案:

答案 0 :(得分:3)

听起来你正在寻找更大字符串中的特定字符串。如果是这样,你可能正在寻找的功能是INSTR:

http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm

答案 1 :(得分:3)

至于我对您的问题的理解,您希望check specific word中是否存在string or not,如果这是您可以在下面找到解决方案的问题。

DECLARE
v_string VARCHAR2(200):='MY NAME IS GAURAV SONI';
v_check PLS_INTEGER;
BEGIN

v_check:=INSTR(v_string,'GAURAV'); --this is case sensitive 

IF v_check >0 THEN 
dbms_output.put_line('Word exists');
END IF;

END;

在上面的区块中,我们搜索字符串GAURAV中的字MY NAME IS GAURAV SONI,此字存在于12处。

请注意,这是Case sensitive,如果您输入gaurav字,v_check的值将为zero

如果您正在寻找Case insensitive,请在oracle REGEXP_INSTR中使用常规表达式代替INSTR。在使用此函数REGEXP_INSTR之前阅读oracle文档

Worked out example in SQL Fiddle