oracle一个表拆成多个表,oracle拆分函数,将字符串拆分成多行多字段表数据
--创建OBJECT类型,包含三个字段
CREATE OR REPLACE TYPE OBJ_V_TABLE AS OBJECT
(
ID VARCHAR2(50),
NAME VARCHAR2(50),
DESCP VARCHAR2(50)
);
--创建一个表类型
CREATE OR REPLACE TYPE V_TABLE IS TABLE OF OBJ_V_TABLE;
--创建拆分函数,分隔符每三个对应三个表字段
CREATE OR REPLACE FUNCTION SPLIT(P_STR VARCHAR2,
P_DELIMITER VARCHAR2 DEFAULT ',')
RETURN V_TABLE
IS
RS V_TABLE := V_TABLE();
L_STR VARCHAR2(4000) := '';
L_LEN NUMBER := 0;
ID VARCHAR2(50);
NAME VARCHAR2(50);
DESCP VARCHAR2(50);
BEGIN
L_STR := P_STR;
L_LEN := LENGTH(P_DELIMITER);
WHILE LENGTH(L_STR) > 0 LOOP
RS.EXTEND;
IF INSTR(L_STR, P_DELIMITER,1,3) > 0 THEN
ID := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
L_STR := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
NAME := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
L_STR := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
DESCP := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
L_STR := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
RS(RS.COUNT) := OBJ_V_TABLE(ID, NAME, DESCP);
ELSIF INSTR(L_STR, P_DELIMITER,1,2) > 0 THEN
ID := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
L_STR := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
NAME := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
L_STR := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
DESCP := L_STR;
RS(RS.COUNT) := OBJ_V_TABLE(ID, NAME, DESCP);
EXIT;
ELSIF INSTR(L_STR, P_DELIMITER,1,1) > 0 THEN
ID := SUBSTR(L_STR, 1, INSTR(L_STR, P_DELIMITER) - 1);
NAME := SUBSTR(L_STR, INSTR(L_STR, P_DELIMITER) + L_LEN);
RS(RS.COUNT) := OBJ_V_TABLE(ID, NAME, '');
EXIT;
ELSE
RS(RS.COUNT) := OBJ_V_TABLE(L_STR, '', '');
EXIT;
END IF ;
END LOOP ;
RETURN RS;
END ;
--运行
SELECT * FROM TABLE(SPLIT('a,张山,1,b,李四,2,c,王五,3,5,六七'));
运行结果:
oracle一个表拆成多个表,oracle拆分函数,将字符串拆分成多行多字段表数据相关推荐
- 分割成数组php字符串函数,PHP 分割字符串函数把字符串分割成数组示例
这篇文章主要为大家详细介绍了PHP 分割字符串函数把字符串分割成数组示例,具有一定的参考价值,可以用来参考一下. 对PHP分割字符串函数把字符串分割成数组感兴趣的小伙伴,下面一起跟随512笔记的小编两 ...
- oracle字符转换为大写,oracle函数把字符串转换成小写
Oracle函数: Lower(char):将字符串装换为小写的格式 Upper(char):将字符串装换为大写的格式 length(char):返回字符串的长度 substr(char,m,n):从 ...
- oracle一个库给多个用户名,配置oracle数据库服务器(为用户分配账户及空间和建立账户管理机制)...
配置数据库服务器 介绍如何为用户分配账户和空间以及如何设置权限. 14.4.1 为用户分配账户及空间 数据库服务器软件和管理软件安装好之后,接下来就是为用户分配账户和空间了.本小节将详细介绍为用户分配 ...
- oracle一个汉字三个字节,1个汉字在UTF-8编码占3个字节
8. 实例 下面,举一个实例. 打开"记事本"程序Notepad.exe,新建一个文本文件,内容就是一个"严"字,依次采用ANSI,Unicode,Unicod ...
- oracle字符串转换浮点数,c#中将字符串转换成带2位小数的浮点数
今天遇到一个展示酒店价格的需求,觉得是要显示成"¥0.00"样式的,就做个小随笔,将字符串装换成带2位小数的浮点数 代码如下 string aaa = ""; ...
- 将字符串转换成16进制
将字符串转换成16进制 原文:将字符串转换成16进制 1.将普通字符串转换成16进制的字符串. 点击进入推荐链接 class Program {static void Main(string[] ar ...
- 程序员编程艺术第三十 三十一章 字符串转换成整数,通配符字符串匹配
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第三十~ ...
- 字符串转换成整数,带通配符的字符串匹配
之前本一直想写写神经网络算法和EM算法,但写这两个算法实在需要大段大段的时间,而平时上班,周末则跑去北大教室自习看书(顺便以时间为序,说下过去半年看过的自觉还不错的数学史方面的书:<数理统计学简 ...
- JS字符串转换成数字的三种经典方法和代码实例
1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行: 对其他类 ...
最新文章
- python官网 中文版 新闻-用python看新闻
- 使用windows服务更新站点地图
- 面向 Web 前端的原生语言总结手册
- Android板实现双屏显示,DisplayManager和Display的使用
- EJB3.0零碎要点---在部署web本地客户端的时候org.apache.jasper.JasperException: java.lang.ClassCastException: $Proxy
- 洛谷P1120【小木棍】(搜索+剪枝)
- 链接数据库超级简单的工具类C3P0谁用谁知道
- php 获取某文件内容
- ubuntu下配置IP地址
- paypal php 接口文档,paypal接口开发记录
- 机器学习应用——导学part
- 计算机画图图形组合教案,绘制简单的图形教案
- 【前端就业课 第一阶段】HTML5 零基础到实战(二)超链接
- scikit-learn中的KMeans聚类实现
- 程序员的有个坏习惯!
- Form_Load():不要甩锅给我
- 计算机更新后启动不了,win10系统更新显卡之后开不了机如何解决
- 用汽车拉苹果的例子来说HTTPS的安全性很容易理解 但HTTPS并不是绝对可靠的
- 关于linux中socket阻塞与非阻塞
- 2022年Web时代猜想
热门文章
- javascript学习之数组的使用一 push pop shift unshift 方法
- 简单排序(插入排序法)
- jquery遍历元素children、find、parent、parents、parentsUntil、next、prev、siblings、closest、filter、not
- Echarts数据可视化series-map地图,开发全解+完美注释
- (一)MySQL 基础配置
- C#指南,重温基础,展望远方!(8)C#数组
- IE10-浏览器实现placeholder效果
- [转载] Python集合取交集intersection()函数和intersection_update()函数
- [转载] python之numpy的基本使用
- [转载] Python3接口自动化框架:第三方openpyxl库读取excel之命名元组namedtuple承载数据