数据库
iechenyb_
做自己喜欢的事儿,每时每刻都是开心的!
展开
-
oracle列转行
--用A分割,获取两个数组 11a22\33a 大小写敏感SELECT REGEXP_SUBSTR('11a22A33a','[^A]+',1,level,'c') AS STRFROM DUALconnect by level<=5;--用,分割,获取4个数组 1a\2b\3c\4d 大小写敏感SELECT REGEXP_SUBSTR('1a,2b,3c,4d','[^,]+',1,level,'c') AS STRFROM DUALconnect by level<=5;-.原创 2020-08-17 15:34:49 · 282 阅读 · 0 评论 -
mybatis使用$作为条件可以查询到记录,使用#确不行。
最近在使用mybatis时,遇到了一个问题就是,使用char类型字段作为查询条件时一直都查不出数据,其他类型的则可以。使用的数据库是oracle,查询条件字段类型是char(50),java代码对应的是String类型。后来经过排查,是由于在oracle中,char类型字段,如果内容长度不够,会自动以空格方式补足长度。如字段 name char(5),若值为123,那么oracle会自动用空格补足长度,最终值为123。select * from data where trim(data.name)=原创 2020-07-23 10:23:52 · 1400 阅读 · 0 评论 -
mybatis分页错误
最近项目上遇到一个奇怪的问题,使用了mybatis分页之后,发现页面展示记录的时候,同一个人竟然会在相邻的两页里边出现,即同一个人有两个row_id,经核查,是mybatis的版本较低导致的,如下为3.4以下版本的查询sqlSELECT * FROM (SELECT TMP_PAGE.*, ROWNUM as ROW_ID FROM (sql order by ...原创 2019-11-14 08:44:56 · 1096 阅读 · 2 评论 -
oracle 下实现累计求和
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.原创 2017-10-19 16:24:21 · 9497 阅读 · 3 评论 -
oracle累计求和
oracle累计求和//将当前行某列的值与前面所有行的此列值相加,即累计求和: //方法一: with t as( select 1 val from dual union all select 3 from dual union all select 5 from dual union all s原创 2017-09-01 16:39:54 · 1713 阅读 · 0 评论 -
数据库事务中的隔离级别和锁
数据库事务中的隔离级别和锁数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性、安全性也是我们需要研究的问题。ACID首先总结一下数据库事务正确执行的四个要素(ACID):原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做,不能只做一部分;一致性(Consistency):在事务执行前数据库的数据处于正确的状态,而事务执行转载 2017-08-28 14:34:12 · 345 阅读 · 0 评论 -
oracle组合索引
组合索引的使用情况分析原创 2017-08-23 15:28:22 · 3057 阅读 · 0 评论 -
linux开启h2客户端
很多人在windows平台上使用过H2数据库,但是安装到Linux,还不知道怎么做,现在,跟着我一起在linux安装:1,下载jar包下载h2-1.3.176.jar 这个包(部分服务版本不一致,请自行更换版本)2,启动服务复制到linux服务器 /opt/h2/bin/ 下在目录下启动Java -cp h2-1.3.176.jar org.h2.tools.Server -web -webAll...原创 2017-08-24 16:48:42 · 3241 阅读 · 0 评论 -
Oracle11g下自动创建分区
11g之前,维护分区需要手工。11g之后使用interval来实现自动扩展分区,简化了维护。根据年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))根据月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))根据天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))根据时分秒: NUMTODSINTERVAL( n,原创 2017-08-04 16:05:22 · 3153 阅读 · 0 评论 -
oracle分区-散列分区
oracle数据库hash分区散列原创 2017-10-16 14:35:56 · 2888 阅读 · 0 评论 -
oracle锁表
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 代码如下:--锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s原创 2015-10-30 15:41:21 · 4026 阅读 · 0 评论 -
oracle在线重定义
1.首先建立测试表,并插入测试数据:create table myPartition(id number,code varchar2(5),identifier varchar2(20));insert into myPartition values(1,'01','01-01-0001-000001');insert into myPartition values(2,'02','02-转载 2017-11-22 16:39:11 · 958 阅读 · 0 评论 -
oracle的行级锁与表级锁
1、行级锁(tx锁,也叫事务锁)在操作DML(create,insert,update)语句时,oracle会自动加上行级锁,在select * from table for update 【of column】【nowait|wait 3】时,oracle也会自动加锁 建议(1)一般在for update 时加nowait,这样就不用等待其他事务执行了,一判断有事务,立马抛出错误。原创 2017-11-28 08:41:35 · 7430 阅读 · 1 评论 -
sql优化笔记
1.对查询进行优化,尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fr原创 2018-02-28 10:27:55 · 224 阅读 · 0 评论 -
oracle数据库字符串拆分
第一种 直接返回切分的字符串create or replace function Get_StrArrayLength( av_str varchar2, --要分割的字符串 av_split varchar2 --分隔符号)return numberis lv_str varchar2(1000); lv_length number;begin lv_str原创 2018-03-27 09:29:24 · 1946 阅读 · 0 评论 -
JDBC的事务传播特性
传播特性 该特性是保证事务是否开启,业务逻辑是否使用同一个事务的保证。当事务在传播过程中会受其影响。其传播特性包括: 1、Propagation.REQUIRED方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,否则开启新事务。 2、Propagation.REQUIRES_NEW无论何时自身都会开启事务 3、Propagation.SUPPORTS自身不...原创 2018-03-27 10:43:40 · 785 阅读 · 0 评论 -
mysql组合索引解析
1 使用全量组合索引2 顺序倒置3不使用前置索引4不使用前置索引原创 2019-03-05 15:45:52 · 673 阅读 · 0 评论 -
计算oracle数据库字符串时间秒差值
select t.record_date as rq, t.cal_current_status as curZT, round(to_number(to_date(to_char(t.cal_current_end_time, 'yyyy/mm/dd hh24:mi:ss'),原创 2017-08-04 15:15:39 · 2426 阅读 · 0 评论 -
Could not commit with auto-commit set on
setAutoCommit总的来说就是保持数据的完整性,一个系统的更新操作可能要涉及多张表,需多个SQL语句进行操作循环里连续的进行插入操作,如果你在开始时设置了:conn.setAutoCommit(false);最后才进行conn.commit(),这样你即使插入的时候报错,修改的内容也不会提交到数据库,而如果你没有手动的进行setAutoCommit(false);出错时原创 2017-08-04 13:44:07 · 6535 阅读 · 0 评论 -
mybatisSql编写小结
1 插入记录,将生成的主键值存储在id中,在java中用map.get('id')获取主键值。sql(参数获取方式#{map.key})2 批量更新若干记录 update ... where ids in (${ids}'') map.sqls=[sql1,sql2,sql3...] ${item} 3 查询记录原创 2014-01-23 21:24:57 · 745 阅读 · 0 评论 -
列传行sql
1 select u.userid ,(select jueseid from view_user_juese v1 where v1.userid=u.userid and jueseid=1) as jbr,(select jueseid from view_user_juese v1 where v1.userid=u.userid and jueseid=2) as fhr,原创 2014-02-10 16:21:35 · 48204 阅读 · 0 评论 -
sequence的用法
sequence是一个特殊的存放等差数列的表,其受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。在informix数据库中使用sequence实例: 1 定义一个sequencecreate sequence seq_testminvalue 200maxvalue 300start原创 2014-05-09 10:18:55 · 4467 阅读 · 0 评论 -
oracle
我们在项目开发中,常常会有一些复杂的业务逻辑。使用oracle的存储过程,可以大大减少java程序代码的编写工作量,而且存储过程执行在数据库上,这样可以利用oracle的良好性能支持,极大地提高程序执行效率和稳定性。定时执行存储过程,就要用到job。以下是常用的参数说明:字段(列) 类型 描述 JOB NU原创 2015-11-05 11:29:41 · 16759 阅读 · 0 评论 -
Hibernate事务隔离级别和事务传播特性
事务隔离级别: 1:读操作未提交(Read Uncommitted) 2:读操作已提交(Read Committed) 4:可重读(Repeatable Read) 8:可串行化(Serializable) 事务传播特性: 1.PROPAGATION_REQUIRED: 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择原创 2016-10-27 08:50:28 · 18435 阅读 · 0 评论 -
数据库优化知识
1 可以为空的列在创建索引的时候不能生效2 强制使用索引,select /*index(table_name index_name)*/ col1,col2 from table。3 相同的group by语句可以合并查询。4 分表使用union all5 alter index idx_name rebuild parallel 8; 数字代表模拟电脑核数。6 建立中间表原创 2017-05-18 09:54:58 · 16753 阅读 · 0 评论 -
Hibernate如何使用BigDecimal
浮点计算精度损失的文章比较多,我就不多说了,搜了一篇,见参考1。设置方式如下:大数字有精度precision和小数位scale两个参数可设置,精度的位数是包含小数位数的,即整数位=精度-小数位。对于超过小数位的小数,用四舍五入法进行截取。运算过程中保留6位小数,保存到数据库时保留4位小数。hibernate的配置中精度用默认值(19),精度设为4,格式如下:原创 2017-06-16 09:48:58 · 22522 阅读 · 0 评论 -
oracle数据库表对比
oracle 两表数据对比---minus1 引言在程序设计的过程中,往往会遇到两个记录集的比较。如华东电网PMS接口中实现传递一天中变更(新增、修改、删除)的数据。实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等等。本文主要讨论利用ORACLE的MINUS函数,直接实现两个记录集的比较。2 实现步骤假设两个记录集分别以表的方式存在,原原创 2017-06-13 13:04:27 · 16957 阅读 · 0 评论 -
不安装oracle客户端,用plsql连接oracle
如何再本地不安装oracle的情况下访问远程oracle服务原创 2017-07-21 15:37:16 · 321 阅读 · 0 评论 -
oracle表空间使用情况查看
查看数据库资源是否充足,库表空间使用情况详情。原创 2017-05-17 17:03:32 · 19495 阅读 · 0 评论 -
oracle查看表空间
select b.file_id 文件ID号, b.tablespace_name 表空间名, b.bytes/1024/1024||’M’字节数, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024||’M’ 已使用, sum(nvl(a.bytes,0))/1024/1024||’M’ 剩余空间, 100 - sum(nvl(a.bytes,0原创 2017-07-21 16:57:56 · 2489 阅读 · 0 评论 -
plsql乱码
plsql查询oracle数据乱码。原创 2017-07-21 17:09:33 · 577 阅读 · 0 评论 -
oracle数据库表分区
1、构建实验表SQL> select *From wl; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- -------------- ---------- -------转载 2017-07-31 14:09:24 · 878 阅读 · 0 评论 -
Hibernate巧用虚拟主键支持Oracle分区
大型的系统,数据量上升到一定程度,都会选择对库表进行切分,会根据表记录的性质,进行分表、或者表分区处理。 最近在系统升级,库表重新设计过程中,就遇到了分表、分区情况。 分表的处理比较简单,根据一定的规则,识别分表编号, 对对应的VO(Bean)进行处理即可。 对于分区,本来应该比分表更简单, 因为Oracle的分区,对用户是透明的,用户本可以不用理会,程序无需改原创 2017-07-31 14:16:49 · 773 阅读 · 0 评论 -
oralce优化
oralce数据库优化知识原创 2017-07-31 15:06:35 · 348 阅读 · 0 评论 -
oralce查询多列数据库操作
同时操作表的多列情况汇总原创 2017-07-31 15:01:03 · 489 阅读 · 0 评论 -
GROUP BY,WHERE,HAVING之间的区别和用法
having子句与where有相似之处但也有区别,都是设定条件的语句。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。简单说来:where子句:select sum(num) as rmb from order where id>10原创 2013-08-28 15:25:58 · 988 阅读 · 0 评论