`
qi_w2006
  • 浏览: 3250 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle行记录合并与拆分

阅读更多
一、多选记录合并
1. 因为网上有各种关于多行记录合并的方案:有直接SQL,有自定义方法等,在此不再介绍;
2. 本人只介绍最偷懒的方法,条件为数据库为oracle 10g,本人比较懒(此次不提供自定义方法)
3. 在oracle 10g以上版本,可以使用以下系统函数WMSYS.WM_CONCAT(列名),用法如下

SELECT ID, WMSYS.WM_CONCAT(OID) OID FROM TABLE GROUP BY ID

4. 如果为oracle 10g以下版本,建议使用自定义方法,暂无。
 
二、单行记录拆分
1. 对于单选记录拆分不知道oracle有没有提供系统函数了,在此不纠结此问题;
2. 我们提供自定义的方法,方法如下:
 
CREATE OR REPLACE FUNCTION SPLITSTR(P_STRING IN VARCHAR2,
                                    P_DELIMITER IN VARCHAR2)
  RETURN STR_SPLIT
  PIPELINED AS
  V_LENGTH NUMBER := LENGTH(P_STRING);
  V_START NUMBER := 1;
  V_INDEX NUMBER;
BEGIN
  WHILE (V_START <= V_LENGTH) LOOP
    V_INDEX := INSTR(P_STRING, P_DELIMITER, V_START);
 
    IF V_INDEX = 0 THEN
      PIPE ROW(SUBSTR(P_STRING, V_START));
      V_START := V_LENGTH + 1;
    ELSE
      PIPE ROW(SUBSTR(P_STRING, V_START, V_INDEX - V_START));
      V_START := V_INDEX + 1;
    END IF;
  END LOOP;
 
  RETURN;
END SPLITSTR;
 
3. 用法如下:
    SELECT *
      FROM TABLE (SELECT SPLITSTR(ACTORS, ',') ACTORS
                    FROM WF_NODE
                   WHERE NODEINDEX = 4)
分享到:
评论

相关推荐

    Oracle GoldenGate进程的合并与拆分规范

    在Oracle GoldenGate实施过程中,抽取进程的合并与拆分是十分重要的一个环节。抽取进程(Extract process)是GoldenGate中的核心组件之一,负责捕获源数据库的事务日志,并生成用于数据复制的数据提取文件。为了满足...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    oracle将以逗号分隔字符串转多行

    例如,'徐风年'的记录会变成六行,每行显示一个名字。 通过这样的查询,可以方便地对逗号分隔的字符串进行分析和操作,比如统计、聚合或其他复杂的数据处理任务。这在处理大量数据,尤其是日志数据或配置文件等以...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    11.4.2补充日志及日志记录规则 11.4.3验证主数据库唯一标识 11.4.4创建逻辑Standby数据库 11.4.5管理日志应用服务 11.5快照Standby数据库 11.5.1快照Standby数据库的特点 11.5.2将物理Standby数据库转换为快照...

    ORACLE索引介绍与高性能SQL优化

    同样,合并或拆分不必要的索引也是维护索引健康的关键步骤之一。 索引的物理属性包括表空间、pctfree、initrans、maxtrans、storage参数等,这些参数对于索引的性能和空间使用有着直接影响。合理设置这些参数可以...

    Oracle中通过触发器监视系统使用情况

    4. 登录时间:精确到0.001秒的Oracle时间数据类型,记录用户登录的时刻。 5. 注销时间:同样精确到0.001秒,记录用户退出的时刻。 6. 最后程序:用户注销时正在执行的程序名称。 7. 最后活动:会话中的最后一个操作...

    oracle常用总结

    - **合并**:可以使用`wm_concat()`函数合并具有相同ID的记录的字段值。例如,将所有相同`id`的`val`字段值合并。 - **拆分**:可以结合`substr()`和`instr()`函数对字符串进行拆分。`instr()`函数用于找到子字符...

    使用SQL*Loader将dBASE数据转储到ORACLE数据库.pdf

    它还能将多个物理记录合并为一个逻辑记录,或者将一个物理记录拆分为多个逻辑记录。在加载过程中,SQL*Loader提供了详细的错误记录功能,便于用户调试和修正问题。 当使用SQL*Loader时,我们需要准备两个关键文件:...

    ORACLE-分区表的用法

    - **拆分分区**:可以将一个较大的分区拆分为更小的分区,以更好地利用分区的优势。 总之,Oracle的分区表功能为处理大规模数据集提供了强大的工具,不仅可以显著提高查询性能,还可以简化数据管理和维护工作。通过...

    Oracle AP 培训资料.pptx

    Oracle AP允许在供应商层次上维护静态数据,并可以设置默认值,限制单张发票的最大金额,实时查看供应商欠款余额,并支持供应商的合并与拆分。 5. **发票处理**: - **发票产生**:可以通过手工输入、电子数据...

    oracle官方教材

    Oracle提供了多种工具来帮助监测和诊断SQL性能问题,如AWR(自动工作负载存储库)、ASH(自动采样历史记录)等。 **监视和优化工具:概览** - **EM性能页**: 提供图形界面来查看性能指标。 - **SQL优化工具**: 如SQL ...

    消除oracle块碎片以提高性能借鉴.pdf

    COALESCE`指令来合并索引块,清理被删除的行的索引标识,适用于碎片程度较轻的情况。 - `ALTER INDEX ... REBUILD`指令则可以完全重建索引,彻底清理碎片,但这个过程需要停用业务,如果希望在线进行,可以添加`ON...

    Oracle Sql 优化

    当索引包含多个列时,Oracle可能无法确定最佳的搜索路径,应确保索引的列顺序与查询条件相匹配。 ##### 3.28 强制索引失效 在某些特定情况下,可能需要强制Oracle不使用某个索引,这可以通过SQL提示或重新编写查询...

    Oracle 相关资料 不错的资料

    - **分区操作**:添加分区、删除分区、截断分区、合并分区、拆分分区。 #### 视图 - 视图是基于一个或多个表或视图的虚拟表,可以通过创建视图来简化复杂的查询操作。 #### 同义词 - **同义词**:创建同义词可以...

    ORACLE__SQL.pdf SQL.Cookbook.pdf

    3. **数据转换**:如何通过SQL进行数据整理,如计算新列、拆分和合并字段。 4. **报表和分析**:如何构建复杂的报表,使用GROUP BY、HAVING和透视表进行数据分析。 5. **数据导入导出**:介绍如何将数据导入到...

    oracle 优化

    Oracle数据库优化是一项系统性的工程,旨在通过调整数据库结构、SQL查询语句、硬件配置等手段来提升数据库性能,确保数据能够高效地被访问与处理。在实际应用中,优化不仅包括对现有系统的改进,还包括在设计阶段就...

    Oracle DBA 参考手册

    10.7.2. 确定Oracle数据库中重复的记录 61 10.7.2.1. 自关联查询方法 61 10.7.2.2. GROUP BY/HAVING查询方法 61 10.7.2.3. Exception into子句 61 11. 备份与恢复 62 11.1. Oracle 归档模式 62 11.2. 备份 62 11.2.1...

    oracle优化技术

    11. **&gt;=与&gt;`:在有索引的列上,使用`&gt;=`可能比`&gt;`更优,因为Oracle可以利用索引来直接查找大于等于的记录。 12. **外部联接“+”**:使用外连接`+`可以替代`NOT IN`,以优化查询性能,尤其在处理关联查询时。 13....

Global site tag (gtag.js) - Google Analytics