spring4.x、springmvc、mybatis、oracle分布式事务配置
由于数据同步需要,在两个oracle 数据库之间进行数据同步,其中有些业务需要分布式事务处理。前段时间也折腾了好久才弄完,贴出来给大家参考一下。 开始在网上搜索相关资料,都说Tomcat不支持分布式事务,只能使用Atomikos和J0TM,JOTM貌似现在已经不更新了,只能使用At...
PL/SQL 复杂自定义对象类型与java类型映射
项目种部分业务用数据库实现效率比较高,所以决定用oracle函数实现。但是数据结构有点复杂,本来打算用字符串解析的方式去解析参数,但是感觉效率又不行,就决定使用数据库对象,捣鼓了一两天,终于给实现了,分享一下: 数据库用的是oracle,数据结构如下:点击(此处)折叠或打开...
Mybatis中处理oracle返回游标类型的自定义函数
在java中接受PL/SQL函数返回的结果集用resultset,但是现在项目中很少使用这种底层机制了,之前大部分的代码编写都是纯PL/SQL,对于java如何接收函数返回的游标一直很好奇,刚好新项目用上Mybatis就小小的研究一下(使用springmvc,mybatis)。 部分代码如下:oracle 函数:create or replace func...
oracle MAX/MIN 分析函数小结
1、通常用法:selectdeptno,empno,ename,sal, MIN(SAL) OVER(partition by deptno orderby hiredate) minsal, MAX(SAL) OVER(partition by deptno orderby hiredate) maxsalfrom emp;DEPTNO EMPNOENAME&nb...
oracle sum()聚合函数
Oracle 的sum聚合函数的功能就是求和(这里暂时不讨论分析函数用法),一般用法不多讲,有个用法比较令人疑惑,曾经也踩过它的坑。示例如下: declare cursor t_cur is select * from emp where empno = 7934 ; v_count number; begin for tm_c...
ORA-14551: cannot perform a DML operation inside a query异常排除
在一个项目中,时不时碰到ORA-14551: cannot perform a DML operation inside a query 错误,定位问题时,发现是在某一个函数的含有for update 的语句抛出异常,这个函数在多个地方调用,调试也没发现异常,后来做了个实验才知道原因,实验如下:create or replace function f_test return numberis l_rec n...
面向集合的思维来优化PL/SQL过程
背景: 用户表users, 每个用户都有count 属性,每天给用户统计的时候,原来使用的方法是: for lr_user in (select..... from users) loop lr_user.count = f_get_count(...) &nb...