![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
dzbxq89
这个作者很懒,什么都没留下…
展开
-
H2运行Oracle日期运算sysdate语法问题
前置信息:项目中使用H2数据库代替Oracle在开发与编译阶段进行测试,测试中有对八小时前数据的查询需求。在oracle中使用 sysdate-8/24可以获得8小时前的时间,在H2环境的单体测试中,sysdate-8/24作为条件,总是过滤了应该查询出的结果。检查后发现,运行语句后,返回的时间是没有减去8小时的。后期查询资料时发现有个回复说H2支持Oracle的时间运算符,但是计算结果为整数,在另一篇资料(http://www.nazmulhuda.info/use-of-sysdate-in-ora原创 2021-07-21 17:36:07 · 595 阅读 · 0 评论 -
oracle数据通过触发器使用merge语句同步
场景:项目中表变更情况复杂,可能有行级的增减情况。与另外的系统产生联动,判断表状态,写入接口表,接口表中另外的数据由另外系统来补充。在业务开始初期,没有直接确定使用触发器的方案,后期与leader确认时发现数据发生变化的场景很多且复杂。商议后确定使用触发器。CREATE OR REPLACE TRIGGER 表空间.触发器名AFTER(触发时机,可以是之前或者之后) update(触发的操作是什么,可以是新增修改之类的操作) OF 变更的行中的值 ON 表 FOR EACH ROW ...原创 2021-04-18 20:39:59 · 530 阅读 · 1 评论 -
数据库大数量迁移思路
数据库: oracle场景: 从其他表中获取大量数据,补充到表中使用方法是使用循环方式,将每条数据单独插入,伪代码如下declare cursor 循环对象 is ( 查询sql );begin for 单次对象 in 循环对象 loop 修改或插入sql end loop;end;方式的核心是将数据分条插入,这样可以降低数据库的压力,可以通过每次修改或插入后将数据提交的方式,降低风险。单次对象相当于数据库中的单行数据,通过单次对象.列名的方...原创 2021-03-05 11:16:16 · 264 阅读 · 2 评论 -
MBatis# $的区别
使用#时不指定类型时会自动认为是varchar类型即使用时会自动加上‘ ’,使用$时会认为是对象而不是字符串。即不会自动加上‘ ’。重构项目,需求很多需要根据id,进行查询。mybatis提供一种方式 #{item} 要查询的集合放到collection后即可。结果为(元素1,元素2,,元素n)。item为list中元素的结果。另一种方式是in(“$对象名”) 这种使用原创 2017-02-25 17:26:10 · 452 阅读 · 0 评论 -
sql条件查询
培训时,讲的都是很基础的一些sql知识,工作中接触了一些没有学过的编写方式,用自己的语言解释下Case When Then Else End如果 条件 就 否则 结束或者理解为if ( ){ } else{} 结束一个case,end中可以包裹多个When Then原创 2017-02-25 17:49:18 · 381 阅读 · 0 评论 -
sql日期比较
问题出现在一次查询时,查询的开始日期明明晚于数据库中记录的时间,查询结果中却出现了。比较sql后,又进行公司的大神。解决了问题进行总结如下:使用mbatis时,有时要传递时间标识,有时时间标识为了方便要转为字符串传递,之后就出现了一些问题,假如没有补零设计的时候会导致比较时间时出现4比29大的情况。愿意是当使用String传递时会从头比较大小会使用4与2比较,而不是4与29比较,这时的解决原创 2017-02-25 17:56:53 · 365 阅读 · 0 评论