1

有没有人知道如何使用 pl/sql 从一个巨大的字符串中获取一个特定的字符串,我是创建查询的初学者,所以任何帮助都会很有用。顺便说一句,我不想​​使用该功能: select substr( * , * ,* ) from * 因为输入是可变的,所以任何人都可以帮助我解决这个问题,你是否建议我使用 block instate 。

感谢和问候,

4

2 回答 2

4

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

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

于 2012-04-09T06:41:32.400 回答
4

据我对您的问题的理解,您想check知道 aspecific word中是否存在 a 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在字符串中搜索 WordMY NAME IS GAURAV SONI并且该单词存在于适当的12位置。

请注意这是Case sensitive,如果您输入单词gaurav,则值v_check将是zero

如果您正在寻找Case insensitive然后在 oracleREGEXP_INSTR中使用 REGULAR EXPRESSIONS 代替.Read INSTRoracle 文档,然后再使用此功能REGEXP_INSTR

在 SQL Fiddle 中制定了示例

于 2012-04-09T06:54:04.220 回答