
Oracle
白米稀饭ice
这个作者很懒,什么都没留下…
展开
-
MERGE INTO 语法
merge into 目标表 ausing 源表 bon(a.条件字段1=b.条件字段1 and ……) when matched then update set a.字段=b.字段 --目标表别称a和源表别称b都不要省略when not matched then insert (a.字段1,a.字段2……)values(b.字段1,b.字段2……) --目标表别称a可省略,源表别称b不可省略根据 b表 操作 a表,如果 ON 后面的条件成立,则update a表,否则 insert a表原创 2021-11-11 14:56:04 · 434 阅读 · 0 评论 -
数据库函数给出参设置默认值
create or replace function getStkCode(p_gzcode varchar2) return varchar2 as v_stkcode varchar2(100);begin with temp_kvs_stkgzcode as(select * from srv_kvs_stkgzcode) select stkcode into v_stkcode from temp_kvs_stkgzcode a where a.GZCODE = p_gzc原创 2021-01-29 09:28:20 · 290 阅读 · 0 评论 -
with as 物化成临时表
/+ materialize/ 优化被调用 1 次,不会放入临时表。被调用 2 次及以上, CBO 优化器会自动把 with as 短语所获取的数据放入临时表中。hint 关键字描述/+ materialize/会强制性要求 with as 中的结果转换为 临时表/+ inline/与上相反,不转换WITH t_emp AS( SELECT /*+ materialize*/ e.empno, e.ename, e.sal FROM scott.em原创 2020-09-04 09:17:48 · 668 阅读 · 0 评论 -
单列索引和联合索引的区别
单列索引 使用 OR 的时候:都会生效 使用 AND 的时候:只有第一个用到的索引才会生效,后面用到的索引都会失效联合索引 使用 OR 的时候:索引失效 使用 AND 的时候: 单独使用联合索引中的其中一个字段,只有联合索引中的第一个字段才会生效,使用其他列都会索引失效 使用联合索引中的一部分字段,只要带了索引中的第一个字段,索引都会生效,否则索引失效 使用索引中的全部列,索引肯定生效参考:https://blog.youkuaiyun.com/Abysscarry/article/d原创 2020-06-02 16:51:57 · 1101 阅读 · 0 评论 -
ORACLE 自定义函数返回多列
--定义行类型create or replace type v_enquiryDate as object( begindate varchar2(8), enddate varchar2(8))--以行类型定义一个表类型create or replace type v_enquiryDate_table is table of v_enquiryDate--函数create or replace function f_get_enquiryDate(i_dateFlag varcha原创 2020-05-26 15:30:40 · 2168 阅读 · 0 评论 -
oracle 列转行
列转行listagg() WITHIN GROUP ()SELECT BUSIDATE,STKCODE,STKTYPE,TO_CHAR(LISTAGG(SHORTNAME, ',') WITHIN GROUP(ORDER BY (SHORTNAME))) AS FUNDNAMELISTFROM (TABLE_DATA) GROUP BY BUSIDATE,STKCODE,STKTYPE...原创 2020-03-28 11:43:30 · 1740 阅读 · 0 评论 -
Oracle 函数扩展二
子查询方面有EXISTS和NOT EXISTS - 检查子查询返回的行是否存在。select * from table1 where exists(select * from table2) 如果括号里面有数据,exists前面的SQL才会执行,否则反之;not exists与之相反。ANY,SOME和ALL - 将值与列表或子查询进行比较。设置操作符UNION - 演示如何将两个查...原创 2020-01-16 16:03:20 · 251 阅读 · 0 评论 -
Date和String之间的格式转换
Date转String:Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat(“yyyymmdd HH24:MM:SS”);String dateStr = sdf.format(date );String转Date:String dateStr = “20191111 11:11:11”;SimpleDa...原创 2019-01-23 18:21:31 · 11491 阅读 · 2 评论 -
oracle中的exists 和not exists 用法详解
select * from (select 0 as id,'050003' as MARKETCODE,'' as SEQCODE,'' as ACCOUNT,'' as ACCNAME,'' as CCADDR, max(BALDATE) as BALDATE,'' as CURRENCY,0 as BALANCE,to_number(sum(BALANCEAVAL)) as BALAN...原创 2019-03-14 19:48:05 · 2704 阅读 · 0 评论 -
ORACLE 函数一
SELECT ’ ’ AS ye1, ’ ’ AS qty, ’ ’ AS diffqty, nvl(m.busidate, F_GETWORKDATE(n.rq1, ‘-1’, ‘005’)) AS busiDate,nvl(n.zqdm, m.GPDM) AS ZQDM, nvl(n.fundcode, m.fundcode) AS fundcode, nvl(n.fundname, ...原创 2019-02-28 16:35:10 · 670 阅读 · 0 评论 -
Oracle数据库,同样的SQL在PLSQL中能查出来数据,在项目中返回为null
同一条SQL,在PLSQL中能查出来数据,在项目中返回为null,查不出来出数据。找了一天问题,找不出代码的任何问题,最后发现。如果字段id类型为char(2)类型话,当给id=1时,通过PLSQL能查出来一条数据,但是项目运行中查不出来数据。是因为,PLSQL连接的数据库是Oracle,而Oracle中字段类型为char时,如果值长度不够,Oracle会自动用空格补齐,但是项目中不会自动补...原创 2019-01-30 20:21:53 · 1871 阅读 · 1 评论 -
Oracle数据库分页
pageSize 每页显示多少条数据pageNumber 页数 从客户端传来totalRecouds 表中的总记录数 select count (*) from 表名totalPages 总页数totalPages = totalRecouds%pageSize == 0 ? totalRecouds/pageSize : totalRecouds/pageSize+1startPage...原创 2019-01-24 09:33:48 · 1677 阅读 · 0 评论