【问题标题】:Splitting a variable length delimited string into columns using Oracle SQL使用 Oracle SQL 将可变长度分隔字符串拆分为列
【发布时间】:2014-04-04 12:20:14
【问题描述】:

我正在处理一个要求,我需要将逗号分隔的字符串拆分为不同的列。

这个列表是可变长度的,即它可以是

               a,b,c,d
                 or
               a,b,c,d,e

等等。即分隔符的数量,因此列的数量不固定。

有没有办法使用 SQL 查询来实现它?

我使用的是 Oracle 11gR2 企业版

谢谢

维沙德

【问题讨论】:

  • 主要要求是使用普通 SQL 而不是 PL/SQL?
  • 不幸的是,是的。 :-(
  • 如果结果集包含大量固定字段,则这是一个有效的解决方案,例如150,仅部分填充了第一列中的数据?
  • 嗯。是的,它可能被认为是一个有效的解决方案。但是,我不知道逗号分隔列表中可以存在的最大项目数。当前最大值约为 178。

标签: oracle oracle11g


【解决方案1】:

这取决于你在哪里工作。

在一个表中,一个 VARCHAR2 最多可以包含 4000 个字符。在 Oracle 12c 中,它可以是 32K - 但必须由 DBA 配置。

在 PL/SQL 内部,限制也高达 32K

【讨论】:

  • 字符串长度将小于 4000 个字符。
猜你喜欢
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
  • 2020-03-09
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
相关资源
最近更新 更多