请问有没有人知道如何从一个巨大的字符串中使用pl/sql获取特定的字符串, 我是创建查询的初学者,所以任何帮助都会有用。 顺便说一句我不想使用的功能:select substr(*,*,*)from * cuz输入是可变的,所以任何一个人都可以帮我解决这个问题, 和你建议我使用block那种情况。从字符串中获取特定单词,ORACLE
感谢&问候,
请问有没有人知道如何从一个巨大的字符串中使用pl/sql获取特定的字符串, 我是创建查询的初学者,所以任何帮助都会有用。 顺便说一句我不想使用的功能:select substr(*,*,*)from * cuz输入是可变的,所以任何一个人都可以帮我解决这个问题, 和你建议我使用block那种情况。从字符串中获取特定单词,ORACLE
感谢&问候,
这听起来像你正在寻找一个更大的字符串中的特定字符串。如果是这样,你可能寻找的功能INSTR:
http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm
链接到Oracle文档而不是第三方会更好:http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_1103.htm – 2012-04-11 13:37:55
@BurhanAli谢谢,链接已更新。 – 2012-04-11 15:20:10
据我的理解到要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;
在我们的字符串MY NAME IS GAURAV SONI
搜索词GAURAV
以上块和这个词存在12
地方。
请注意,这是Case sensitive
,如果您将字gaurav
,v_check
的值将为zero
。
如果您正在寻找Case insensitive
然后再对正则表达式在Oracle REGEXP_INSTR
到位INSTR
.Read甲骨文文件的使用此功能REGEXP_INSTR
在PL/SQL你不需要使用SELECT来使用substr。你可以直接调用它:v_result = substr(p_input,1,2); 根据你实际尝试实现的内容,还可以看看[instr](http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions068.htm),[regexp_substr](http: //docs.oracle.com/cd/B19306_01/server.102/b14200/functions131.htm)和[regexp_instr](http://docs.oracle.com/cd/B13789_01/server.101/b10759/functions114.htm )。 – Viehzeug 2012-04-09 06:58:05
当提问这样的问题时,你应该提供一些样本输入和一些优化的输出。帮助我们来帮助你! – APC 2012-04-09 15:07:44
你是在pl/sql还是sql?有些背景会帮助你。 – 2012-04-11 13:39:05