如何调整 LISTAGG 以支持选择查询中超过 4000 个字符?

2024-04-28

Oracle Database 11g 企业版版本 11.2.0.2.0 - 64 位生产版。

我有一个以下格式的表格。

Name     Department
Johny    Dep1
Jacky    Dep2
Ramu     Dep1

我需要以下格式的输出。

Dep1 - Johny,Ramu
Dep2 - Jacky

我尝试过“LISTAGG”功能,但有 4000 个字符的硬性限制。由于我的数据库表很大,因此无法在应用程序中使用。另一种选择是使用

SELECT CAST(COLLECT(Name)

但我的框架允许我只执行选择查询,而不执行 PL/SQL 脚本。因此,我找不到任何方法来使用 COLLECT 命令所需的“CREATE TYPE”命令创建类型。

有没有其他方法可以使用选择查询来实现上述结果?


您应该添加 GetClobVal 并且还需要 rtrim,因为它将在结果末尾返回分隔符。

SELECT RTRIM(XMLAGG(XMLELEMENT(E,colname,',').EXTRACT('//text()') 
  ORDER BY colname).GetClobVal(),',') from tablename;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何调整 LISTAGG 以支持选择查询中超过 4000 个字符? 的相关文章

  • 比较字符串和整数会产生奇怪的结果

    我真的很困惑为什么这个操作有效 有人可以解释一下吗 test1 d85d1d81b25614a3504a3d5601a9cb2e test2 3581169b064f71be1630b321d3ca318f if test1 0 echo
  • 使用 TIMEZONE 查询 Oracle TIMESTAMP

    我在 Oracle DB 表中有一个类型为TIMESTAMP 6 WITH TIME ZONE 有些数据行包含来自不同时区的数据 有些是 UTC 有些是其他时区偏移量 有没有一种方法可以查询 Oracle 表 以便结果始终以 UTC 形式返
  • Oracle 中的第 N 个最高薪水

    为了找出oracle中的第N个最大sal 我使用下面的查询 SELECT DISTINCE sal FROM emp a WHERE SELECT COUNT DISTINCE sal FROM emp b WHERE a sal lt b
  • 捕获 Exception 对象是否安全

    我使用依赖于异常的 Java 库 简化代码如下 try val eventTime eventTimeString as Date catch case e Exception gt logger error s Can t parse e
  • 将此 c-cast 更改为reinterpret_cast 是否安全?

    我正在尝试从我正在处理的某些代码中删除 c 风格的强制转换 并且我对唯一的替代方案感到担忧 原来的代码是 WPARAM param WPARAM GetDlgItem IDC WORKFLOW m hWnd this gt PostMess
  • 无法使用 LISTAGG

    SELECT deptno LISTAGG ename WITHIN GROUP ORDER BY ename AS employees FROM emp GROUP BY deptno Error ORA 00923 FROM keywo
  • 是否可以重载 *static_cast* 运算符?

    我定义了一个类A 实际属性无关 是否可以定义一个专业化static cast
  • 将 linq 查询转换为字符串数组 - C#

    将单列 linq 查询转换为字符串数组的最有效方法是什么 private string WordList DataContext db new DataContext var list from x in db Words orderby
  • 将泛型类转换为接口

    我在将泛型类转换为它正在实现的接口时遇到问题 我的代码是这样的 interface foo void foobar class bar foo public void foobar throw new NotImplementedExcep
  • 使用 Stringstream 将字符串转换为 Int

    这里有一个小问题 int IntegerTransformer transformFrom std string string stream gt clear std cout lt
  • 运行时动态转换

    有没有一种方法可以在运行时动态转换 如以下伪代码 foreach DataRow row in table Rows foreach DataColumn col in table Columns if row col DBNull Val
  • 对需要强制转换的 Java 泛型感到困惑

    我对以下代码感到困惑 import java util ArrayList import java util LinkedList import java util List public class GenericsTest
  • 如何在C#中确定现有的oracle数据库连接?

    假设我使用正确的凭据调用以下方法 private bool Connect string username string password string CONNSTRING Provider MSDAORA Data Source ISD
  • 实体框架左外连接和分组抛出:ORA-00907:缺少右括号

    我在基于实体框架的数据访问中使用实体框架来定位多个数据库 我们是一个使用 Entity Framework 已有 2 年的团队 生成的代码与 sql server 2008 完美配合 现在 我们在将数据库迁移到 Oracle 11 Expr
  • C++ 删除 static_cast (指针)行为

    假设代码执行以下操作 T pointer new T delete static cast
  • 在 Akka/Scala 中使用带有 future 的 mapTo

    我最近开始使用 Akka Scala 编码 遇到了以下问题 通过范围内的隐式转换 例如 implicit def convertTypeAtoTypeX a TypeA TypeX TypeX just some kinda convers
  • 严格别名是c还是c++的事情?

    在 ISO IEC 9899 TC2 中 该标准规定如下 6 3 2 3 指针 指向对象或不完整类型的指针可以转换为指向不同类型的指针 对象或不完整类型 如果生成的指针未针对所指向的类型正确对齐 则行为未定义 否则 当再次转换回来时 结果应
  • 自动铸造[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我现在正在遭受脑放屁的痛苦 我以前曾经这样做过 但我不记得确切的语法 也无法查看我编写的代码 因为我当时在另一家公司工作 我有这样的安排 class
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map

随机推荐