我将再次寻求您的帮助,以便在oracle数据库中完成一些有关字符串的工作,以便进行一些预处理(在文本挖掘之前)。 所以我在varchar2类型表中有这种形式的字符串: “ #PROTESTOBR:巴西的Protestos emváriascidades巴西国家公园的遗址在国际上互通! }“
我想恢复性地清理我的字符串,从#和url中清除它们。我正在研究两种方法: 1 /因为我成功地从字符串中提取了标签,并将它们导出到另一个表中,所以我试图弄清楚如何制作一个类似查询的REPLACE,将包含在标签表中的整个标签作为参数。 2 /只是尝试使用递归CONNECT BY LEVEL子句清理我的文本。当我成功提取hahstags时,我尝试使用与我成功提取其hashtags的查询一起作为替换查询:
SELECT replace(titre, (regexp_substr("my_string", '#\S+\s?'))) as wo#, d.l occurrence FROM My_String_Table CROSS JOIN (SELECT LEVEL l FROM dual
CONNECT BY LEVEL < 30) d WHERE regexp_like("my_string",'#\w+')
AND d.l <=regexp_count("my_string",'#\w+');
使用这种方法的问题是,它以查询所遇到的模式((regexp_substr(“ my_string”,'#\ S + \ s?'))的时间返回我(按预期)作为行。很好,但是,您可以猜到我只想要一个结果^^ 我怎样才能做到这一点?您有什么建议?考虑到我没有一个要处理的字符串,而是大约一百万个字符串,您将如何处理? 非常感谢您的建议! 感谢bis,因为上面显示的查询是通过stackoverflow示例找到的。