接受的答案使用条件DBMS_RANDOM.VALUE IS NOT NULL这是不合适的。 它只是防止循环,但是一个简单的问题会出现, 如何和何时dbms_random.VALUE可以为空? 从逻辑上讲,它永远不会是NULL 。

更合适的解决scheme是使用sys.odciNumberList并防止循环循环。

例如,

build立

SQL> CREATE TABLE t ( 2 ID NUMBER GENERATED ALWAYS AS IDENTITY, 3 text VARCHAR2(100) 4 ); Table created. SQL> SQL> INSERT INTO t (text) VALUES ('word1, word2, word3'); 1 row created. SQL> INSERT INTO t (text) VALUES ('word4, word5, word6'); 1 row created. SQL> INSERT INTO t (text) VALUES ('word7, word8, word9'); 1 row created. SQL> COMMIT; Commit complete. SQL> SQL> SELECT * FROM t; ID TEXT ---------- ---------------------------------------------- 1 word1, word2, word3 2 word4, word5, word6 3 word7, word8, word9 SQL>

所需查询:

SQL> SELECT t.id, 2 trim(regexp_substr(t.text, '[^,]+', 1, lines.column_value)) text 3 FROM t, 4 TABLE (CAST (MULTISET 5 (SELECT LEVEL FROM dual CONNECT BY LEVEL <= regexp_count(t.text, ',')+1) 6 AS sys.odciNumberList 7 ) 8 ) lines 9 ORDER BY id 10 / ID TEXT ---------- -------------------------------------------------- 1 word1 1 word2 1 word3 2 word4 2 word5 2 word6 3 word7 3 word8 3 word9 9 rows selected.

使用XMLTABLE的备用解决scheme:

SQL> SELECT id, 2 trim(COLUMN_VALUE) text 3 FROM t, 4 xmltable(('"' 5 || REPLACE(text, ',', '","') 6 || '"')) 7 / ID TEXT ---------- ------------------------ 1 word1 1 word2 1 word3 2 word4 2 word5 2 word6 3 word7 3 word8 3 word9 9 rows selected. SQL>

有很多方法可以完成这个任务,比如MODEL子句。 有关更多示例,请参阅将逗号分隔的string拆分为表格

oracle一个表拆成多个表,oracle – 在oracle表中将多个以逗号分隔的值拆分为多行...相关推荐

  1. mysql一张表拆成多张表思路方案实现

    起始是同学有个需求,怎么实现一张拆成多张表,同时数据也拆好.所有如下探究,简化数据和例子 1.先决条件 图示 mysql 数据库 mysql初始化数据 create table A (no int a ...

  2. 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个

    problem L2-002 链表去重 (25分) 给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点 ...

  3. oracle一个表拆成多个表,oracle拆分函数,将字符串拆分成多行多字段表数据

    --创建OBJECT类型,包含三个字段 CREATE OR REPLACE TYPE OBJ_V_TABLE AS OBJECT ( ID VARCHAR2(50), NAME VARCHAR2(50 ...

  4. sql 1行拆分成两行_EXCEL总表拆分成100个分表,同事用1天,我只用10秒钟

    如何将一个总表分成多个分表?这是问的比较多的EXCEL问题之一,因为职场人士总会碰到总表分成分表的情况. 碰到过不少人,要把总表分成多个分表,用"建立新工作表.复制.粘贴"的方法, ...

  5. oracle一个汉字三个字节,1个汉字在UTF-8编码占3个字节

    8. 实例 下面,举一个实例. 打开"记事本"程序Notepad.exe,新建一个文本文件,内容就是一个"严"字,依次采用ANSI,Unicode,Unicod ...

  6. ORACLE普通表转换成分区表

    转http://mp.weixin.qq.com/s?__biz=MzAwMjkyMjEwNg==&mid=2247484761&idx=1&sn=ce080581145931 ...

  7. oracle 表的er图,用PowerDesingner把oracle中的表导成er图

    用PowerDesingner把oracle中的表导成er图 通过windows数据源管理,建立ODBC数据源. 我的是基于oracle10g. 打开Windows的控制面板 打开管理工具 打开数据源 ...

  8. excel几个表合成一张_快速将多个excel表合并成一个excel表

    应用场景:有很多张excel,而且excel表里面的结构基本一样,如何快速将这些excel合并在一个excel页面,便于后期分析和统计 技术实现:利用excel表的宏计算实现. 注意:金山的WPS没有 ...

  9. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...

最新文章

  1. 厦大肝癌研究成果登《细胞》顶刊背后:一作中途离世,捐献遗体用于医学研究...
  2. angular 学习理解笔记
  3. GNU make manual 翻译( 一百八十一)
  4. 数据可视化应用案例:从面积到人口,再到经济、房贷等等方面透析重庆市
  5. openlayer 3 在layer上添加feature
  6. OpenCV Java开发简介
  7. Spring Security with Spring Boot 2.0:使用Servlet堆栈的简单身份验证
  8. Hadoop学习之yarn
  9. Serverless 工作流给人工智能带来了哪些变化?
  10. nodejs集成sqlite
  11. php js 图片旋转,使图片旋转的3种解决方案_基础知识
  12. leetcode—26.求前k大值与前k小值
  13. 可解释人工智能XAI
  14. Spyder设置字体
  15. 网页中文转英文(国际化)
  16. PHP 生成 csv 文件时乱码解决
  17. Egret Wing常用快捷键
  18. Java线程池如何优雅地等待所有任务执行完
  19. 多包管理工具Lerna(莱尔纳)
  20. matlab零序五次谐波,基于5次谐波的小电流接地系统故障选线方法仿真与分析.docx...

热门文章

  1. 第四单元博客总结——暨OO课程总结
  2. Gym 101982 (2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) )
  3. Spring加载context的几种方法
  4. 下载和安装R、RStudio !
  5. 统计字符串中每种字符类型的个数demo
  6. SQL Server 查询表备注信息的语句
  7. css框架:五大css流行框架的总结-css教程-PHP中文网
  8. 前端开发工程化探讨--基础篇(长文)
  9. javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
  10. koa --- 使用Sequelize连接mysql