如何在oracle中拆分varchar

时间:2014-11-12 15:18:26

标签: oracle oracle11g oracle10g

我有一个过程,我将输入参数作为字符串数组。

此字符串包含5-Deal deleted

我想将此varchar拆分为5并删除交易。 此处拆分条件为-

3 个答案:

答案 0 :(得分:2)

尝试使用regexp_substr

select regexp_substr ('5-Deal deleted' , '[^-]+', 1, rownum) split
      from dual
      connect by level <= length (regexp_replace ('5-Deal deleted' , '[^-]+'))  + 1;

然后您可以将BULK COLLECT INTO用于存储到变量

答案 1 :(得分:1)

对于这么简单的任务,我会选择SUBSTRINSTRREGULAR EXPRESSION会占用太多资源。

INSTR会找到-的位置,即连字符,而SUBSTR会选择所需的字符串部分。

或者,

如果您的示例数据是所有行的样子,那么,只需从字符串中提取DIGITALPHA,然后只提取concatenate。这显然需要REGULAR EXPRESSION

答案 2 :(得分:1)

试试这个:

 SELECT SUBSTR ('5-Deal deleted', 1, INSTR ('5-Deal deleted', '-') - 1)
          AS FIRST,
       SUBSTR ('5-Deal deleted', INSTR ('5-Deal deleted', '-') + 1) AS second
  FROM DUAL