加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle成果:复制wm_concat

发布时间:2021-03-14 19:59:48 所属栏目:站长百科 来源:网络整理
导读:我今朝正在研究Crystal Reports中的一个项目,该项目拒绝行使Oracle 10g中应承的未记录的函数WM_CONCAT. 这是WM_CONCAT头信息 WM_CONCAT(p1 IN VARCHAR2) RETURN VARCHAR2 要行使WM_CONCAT,我将它转达给它:WM_CONCAT(column1);此函数好像接管varchar2范例的

我今朝正在研究Crystal Reports中的一个项目,该项目拒绝行使Oracle 10g中应承的未记录的函数WM_CONCAT.
这是WM_CONCAT头信息

WM_CONCAT(p1 IN VARCHAR2) RETURN VARCHAR2

要行使WM_CONCAT,我将它转达给它:WM_CONCAT(column1);此函数好像接管varchar2范例的列,并从列返回以逗号脱离的值列表.我今朝有这个成果的自界说版本(在我的事变计较机上),但它不是最佳的,缺乏可重用性.任何人都可以提供一个好的,可一再行使的成果,如WM_CONCAT,我可以行使?

办理要领

行使wm_concat时是否收到错误动静?
与to_char之类的函数差异,它由wmsys拥有,您也许必要行使wmsys.wm_concat来行使它. (除非你建设须要的同义词虽然).

此刻针对现实题目,

这种技能称为字符串聚合.

你可以在这里找到许多其他选择.

http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
对付其他要领,请在http://asktom.oracle.com上搜刮“stragg”
另一个有效的链接:http://www.orafaq.com/node/2290

这大噶?鲱常用的一个.
很多团队编写本身的自界说函数,或多或少都这样做.

CREATE OR REPLACE FUNCTION get_employees (p_deptno  in  emp.deptno%TYPE)
  RETURN VARCHAR2
IS
  l_text  VARCHAR2(32767) := NULL;
BEGIN
  FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
    l_text := l_text || ',' || cur_rec.ename;
  END LOOP;
  RETURN LTRIM(l_text,',');
END;
/
SHOW ERRORS

固然此办理方案合用于varchar2和number,但可以行使Oracle ODCIAggregate接口构建最佳通用办理方案.

http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10800/dciaggfns.htm#sthref462

实现沟通的是在www.oracle-base.com上面的第一个链接

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读