【问题标题】:Oracle: split strings [duplicate]Oracle:拆分字符串[重复]
【发布时间】:2015-08-27 09:48:52
【问题描述】:

我有一个这样的存储过程:

...
IS
l_count binary_integer;
l_array dbms_utility.lname_array;
BEGIN

...

dbms_utility.comma_to_table
  ( list   => regexp_replace(l_input,'(^|,)','\1x')
  , tablen => l_count
  , tab    => l_array
 );

for i in 1 .. l_count
     loop
        myQuery := myQuery || '''' || substr(l_array(i ),2) || '''';
        if i < l_count then
             myQuery := myQuery || ',';
       end if;
     end loop;
...
END;

当我提交这样的字符串时,'aaa,bbb,ccc' 它可以正常工作,但由于斜杠字符而不能使用这个 'aaa,bb/b,ccc'。

这个问题有解决方案吗?还是另一种方式?

【问题讨论】:

标签: sql oracle split


【解决方案1】:

使用REPLACE 函数。

''' || REPLACE('aaa,bb/b,ccc', ',','' '') || ''';

输出:

'aaa' 'bb/b' 'ccc'

例如

''' || REPLACE(@string, ',','' '') || ''';

【讨论】:

  • 我不想替换这个角色。因为我需要整个单词(bb/b)。所以拆分的结果将是:'aaa' 'bb/b' 'ccc'
  • 你希望输出是 'aaa' 'bb/b' 'ccc' 还是 'aaa','bb/b','ccc'
  • 更新为将'aaa' 'bb/b' 'ccc' 作为输出
  • @kkung 您是否看到标记为重复的主题?提供了多种选项来实现所需的输出。
  • 我试了一下,但它不能解决我的斜杠字符问题。另外,我需要遍历字符串以逐个获取值。
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 2017-07-22
  • 2011-07-06
  • 2011-09-03
  • 2016-03-15
  • 2017-02-05
  • 1970-01-01
相关资源
最近更新 更多