首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

巧用SQLoracle plsql split函数

李伟 专注于oracle pl/sql开发和Java开发,擅长复杂业务逻辑、算法pl/sql实现。 背景 在软件开发过程中程序员经常会遇到字符串拼接和拆分工作。...Java程序员通用做法是在service层将接收"1001,1002,1003"拆分(使用java split函数),然后封装List,将List传递给DAO,再传递给ORM持久层xml调用sql...解决方案 本文要做就是单句SQL实现该功能。 先分析一下,该业务有两个关键点。 一是字符串拼接,oracle(11.2)提供了listagg函数已经实现了该功能,我们直接使用就可以。...二是字符串拆分,oracle没有实现该功能,但是java提供了split函数实现了字符串拆分功能。 我们可以参考javasplit函数写一个oracle版split函数。...与listagg函数联合查询: ? 注意:listagg是oracle 11.2版本新功能。 至此,便简单实现了oracle字符拆分与拼接。

2K60
您找到你想要的搜索结果了吗?
是的
没有找到

Oracle字符串函数

字符函数——返回字符值 这些函数全都接收是字符族类型参数(CHR 除外)并且返回字符值.除了特别说明之外,这些函数大部分返回VARCHAR2类型数值.字符函数返回类型所受限制和基本数据库类型所受限制是...相同,比如: VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符),而CHAR数值被限制为255字符(在ORACLE8中是2000).当在过程性语句中使用时,它们可以被赋值给...CHR和ASCII是一对反函数。经过CHR转换后字符再经过ASCII转换又得到了原来字符。 使用位置:过程性语句和SQL语句。...使用位置:过程性语句和SQL语句。 l INITCAP 语法:INITCAP(string) 功能:返回字符串每个单词第一个字母大写而单词中其他字母小写string。...Nlsparams作用和NLS_INITCAP相同.如果忽略参数,会话使用缺省排序. 使用位置: 过程性语句和SQL语句。

97920

oracle基础|oracle函数使用|oracle单行函数(字符函数、日期函数、数字函数、转换函数)使用

目录 一、 前言 二、什么是函数 1、哑表dual 2、字符函数 3、数字函数 4、日期函数 5、类型转换函数 6、千年虫: ---- 一、 前言 前面我们学了一些简单用法,今天要学习oracl函数使用...,函数oracle非常重要功能,如果将函数学会了,那么基本上在项目的一些增删改查功能,就可以很轻松上手了,所以这篇文章一定要认真的看 二、什么是函数 这里函数相当于java中写好一些方法,有名字...通常用在select语句中,作为查询目标表结构,oracle保证dual里面永远只有一条记录。...:转换成小写 2) UPPER:转换成大写 3) INITCAP:首字母变成大写,其余都小写 4) CONCAT:字符串连接 5...数据库中表示一个日期数据几种方式 1.sysdate 2.oracle默认日期格式 例如:'25-MAY-95' 3.to_date函数转换

7.1K10

Oracle sql语句--单行函数、组函数、分组与过滤组信息

一、单行函数 函数分为系统内置函数自定义函数(后期学习plsql 中定义);了解系统内置函数(方法),重点掌握 to_date 、 to_char (字符和日期转换)...根据函数返回结果,我们将函数分为单行函数和多行函数 1)、单行函数:一条记录返回一个结果 2)、多行函数函数 聚合函数 (重点) :多条记录 返回一个结果 (重点) ?...1、日期函数 日期函数: 注意区分 db数据库时间 ,java应用服务器时间。...以一方为准 oracle以内部数字格式存储日期:年,月,日,小时,分钟,秒 ···sysdate/current_date -- 以date类型返回当前日期 ···add_months(d,x)...-- 返回加上x月后日期d值 ···LAST_DAY(d) -- 返回所在月份最后一天 ···months_between(date1,date2) -- 返回date1和date2之间月数目

1.4K20

oracle 常见函数_oracle有没有包含函数

oracle 数据库 中主要使用两种类型函数: 1. 单行函数:操作一行数据,返回一个结果 常用单行函数有: 字符串函数:对字符串操作。 数字函数:对数字进行计算,返回一个数字。...X 例:对工资是2000元以下员工,如果没发奖金,每人奖金100元 代码演示:NVL函数 SQL> SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE...,如果没有奖金,则奖金为200元,如果有奖金,则在原来奖金基础上加100元 代码演示:NVL2函数 SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200)...代码演示:sum函数 SQL> SELECT SUM(sal) FROM emp; ——————————————————————- SUM(SAL) 29025 例:求不同部门平均工资 代码演示:AVG...函数分组查询 SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO; ——————————————————————- DEPTNO AVG

2.8K30

oracle游标 sql语句,sql游标

大家好,又见面了,我是你们朋友全栈君。...sql游标 游标的类型: 1、静态游标(不检测数据行变化) 2、动态游标(反映所有数据行改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1...n行 into 变量 把当前行各字段值赋值给变量 游标状态变量: @@fetch_status 游标状态 0 成功 -1 失败 -2 丢失 @@cursor_rows 游标中结果集中行数 n...行数 -1 游标是动态 0 空集游标 操作游标的当前行: current of 游标名 以下例子,在SQL SERVER 2000 测试成功 use pubs go declare @auid char...auth_cur cursor for select au_id, au_lname, au_fname, state from authors open auth_cur fetc 相关文档: 1.Oracle

1.4K20

Oracle数据库学习笔记(五 —— 函数、视图、索引、同义词)

Oracle 函数、视图、索引、同义词 引言 一、字符串函数 1.1 concat (字符串链接函数) 1.2 首字符大写 initcap 二、Oralce 索引 2.1 索引概念及使用规则 2.2...答: 在 Oracle中,函数分为系统函数 和 自定义函数。...通过函数,我们能够封装一些方法,而达到简化程序作用,同理在 Oracle 中通过函数,我们能够实现更多骚操作 一、字符串函数 常见函数及功能一览表 函数函数功能 RPAD 在列右边粘贴字符 LPAD...,如删除字符串两边空格,删除字符串两边#字符 CONCAT 字符串连接函数 INITCAP 首字符大写函数 INSTR 字符串查找函数 UPPER、LOWER 字符串全部大写、小写函数 LENGTH...当通过视图修改数据时,实际上是在改变基表中数据;相反地,基表数据改变也会自动反映在由基表产生图中。由于逻辑上原因,有些Oracle视图可以修改对应基表,有些则不能(仅仅能查询)。

83210

oracle日常 常用函数与脚本

-1)) + 2,                                                     'iw') from dual; ------oracle...what参数是将被执行PL/SQL代码块。      next_date参数指识何时将运行这个工作。      interval参数何时这个工作将被重执行。     ...no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE      指示此PL/SQL代码在它第一次执行时应进行语法分析,      而FALSE指示本PL/SQL代码应立即进行语法分析...NLS_INITCAP(x[,y]) 【功能】返回字符串并将字符串第一个字母变为大写,其它字母小写; 【参数】x字符型表达式 【参数】Nls_param可选, 查询数据级NLS设置:select *..., A C B D E select nls_initcap('ab cde') "test", nls_initcap('a c b d e','NLS_LANGUAGE=AMERICAN')

47920

Oracle-Oracle SQL Report (awrsqrpt.sqlawrsqrpi.sql)生成指定SQL统计报表

概述 我们知道,Oracle提供脚本均位于下列目录下 $ORACLE_HOME/rdbms/admin 其中, awrsqrpt.sql用来分析某条指定SQL语句,通过awrsqrpt.sql脚本,...awr能够生成指定曾经执行过SQL执行计划,当时消耗资源等情况。...---- 常用几个如下: awrrpt.sql :生成指定快照区间统计报表 awrrpti.sql :生成指定数据库实例,并且指定快照区间统计报表 awrsqlrpt.sql :生成指定快照区间,...指定SQL语句(实际指定是该语句SQLID)统计报表 awrsqrpi.sql :生成指定数据库实例,指定快照区间指定SQL语句统计报表 awrddrpt.sql :指定两个不同时间周期,生成这两个周期统计对比报表...---- 集群中指定特定实例SQL语句SQL Report 针对多实例数据库,使用 @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

71930

OracleSQL优化

但是用INSQL性能总是比较低,从Oracle执行步骤来分析用INSQL与不用INSQL有以下区别:     ORACLE试图将其转换成多个表连接,如果转换不成功则先执行IN里面的子查询,再查询外层表记录...DLYX.ZLYHJBQK(中间多了空格)     以上四个SQLORACLE分析整理之后产生结果及执行时间是一样,但是从ORACLE共享内存SGA原理,可以得出ORACLE对每个SQL 都会对其进行一次分析...,并且占用共享内存,如果将SQL字符串及格式写得完全相同则ORACLE只会分析一次,共享内存也只会留下一次分析结果,这不仅可以减少分析SQL时间,而且可以减少共享内存重复信息,ORACLE也可以准确统计...(注:如果对表进行了统计分析,ORACLE会自动先进小表链接,再进行大表链接) 三.SQL语句索引利用     1.对操作符优化(见上节)     2.对条件字段一些优化:     a.采用函数处理字段不能利用索引...kh_bh='250000' 四.应用ORACLEHINT(提示)处理:提示处理是在ORACLE产生SQL分析执行路径不满意情况下要用到

1.8K20

Oracle数据库易遗漏知识点(一)

符号 (2)逻辑运算符and,or,not优先级 not > and > or 2.单行函数 (1)initcap:将每个单词第一个字母大写,其它字母变为小写返回 ?...(3)trunc:TRUNC函数返回处理后数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后部分做相应舍入选择处理,而统统截去 ?...DECODE  Oracle 特有 CASE WHEN  Oracle ,  SQL Server,  MySQL 都可用。 两者性能区别在哪里?...numberIndex.nextVal, COU); EXIT WHEN COU >= 50000; COU := COU + 1; END LOOP; END; (sequence是“序列”,declare是PL/SQL...Oracle在文档中提到CASE语句效率会更高一些,尤其是CASE表达式 WHEN 常量 THEN语法,效率要比CASE WHEN表达式 THEN语法更高一些。

50240
领券