相关疑难解决方法(0)

Oracle中listagg的替代方案?

listagg是Oracle 11.2中引入的一个函数!现在这个功能正在困扰我们分配,我们正在从MySQL迁移到Oracle,我们有这个查询:

SELECT
    p_id,
    MAX(registered) AS registered,
    listagg(MESSAGE, ' ') within GROUP (ORDER BY registered) AS MESSAGE
  FROM
    umm_parent_id_remarks_v m
  GROUP BY
    m.p_id;
Run Code Online (Sandbox Code Playgroud)

只要我们知道在Oracle下面有什么烦恼它就会返回VARCAR而不是我们需要的CLOB! 文字很大,我们确实需要它是CLOB!

这是我试图做的!

创建一个CLOB类型的CLOB_T表!

然后创建功能

create or replace
function listaggclob (t in clob_t) 
  return clob
as 
  ret clob := '';
  i   number;
begin
  i := t.first;
  while i is not null loop
    if ret is not null then
      ret := ret || ' ';
    end if;
    ret := ret || t(i);
    i := t.next(i);
  end loop; …
Run Code Online (Sandbox Code Playgroud)

sql oracle varchar clob

15
推荐指数
2
解决办法
4万
查看次数

标签 统计

clob ×1

oracle ×1

sql ×1

varchar ×1