自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 ibatis 绑定变量 sql硬软解析

关于避免sql的硬解析: 1.ibatis中,所有的 ##都是绑定变量,所有的$$都不算绑定变量,所以尽量避免使用$$。 但是对于In,$$中传入的值,不被看成一个整体,此在In条件中可以顺利使用只是不是绑定变量如:1 :2 :3 :4这种语句; 如果in的值是##传入的,则in查不到任何数据因为##里面的东西被看成一个整体。 2.如果sql中涉及到 where id in(xxx),

2013-09-06 15:06:05 5255

原创 java获取日期 昨天 今天 明天的日期

这里的Date是 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar;      Date date=new Date();//取时间 昨天 今天 明天的日期" align="top">

2013-09-02 19:25:20 2306

原创 java ibatis调动oracle传入clob参数的存储过程

我试了几个,得出结论: java程序,无法直接用ibatis调动oracle传入clob参数的存储过程,而只能将clob参数插入数据库表的字段,插入时直接传入String参数就可以,所以,标题应该这么解决: 1.将clob字段先插入数据库中建有clob字段的临时表 2.存储过程中从表中将clob字段取出使用。 我的代码如下: oracle数据库建表: create table t_te

2013-08-15 16:30:23 3868

原创 oracle 神奇的merge into

我的问题: 你们看我这个,1号的就走索引,4号的不走索引要全表,我希望4号走索引,加了强制走索引的语句也不管用,怎办? (我的语句:) update t_mt partition(P_MT5_1) mt set (mt.stat,mt.rpttime)=(select stat,rpttime from t_statbuf buf where sj>=to_date('2

2013-05-10 15:10:30 2147

原创 oracle分区相关

需求: mx表,最早创建时间是2013-01-15。从2013-01-15到2013-02-27(总共的),有1500万数据。从2013-01-15到2013-01-31(2月份之前的)有560万数据。 由于mx表是主要业务表,数据量不能太大,所以需要半个月进行一次数据迁移,将数据“剪切”进mxbak表。 现在将mxbak表,按 创建时间 半月进行一个分区建立分区表。由于现在是2013-02

2013-02-28 16:43:48 852

原创 oracle 清大表

--1: 创建新表 Create table CC_EVENT_RESERVE_NEW tablespace tab_cc as select * from CC_EVENT_RESERVE where rownum < 1; --close logging alter table CC_EVENT_RESERVE_NEW nologging; --set session parall

2013-02-02 11:39:49 889

原创 oracle移datafile

曾经所有的datafile都在一个盘上,导致io剧增不下,现在将datafile平均分到3个硬盘(由于data大,先只考虑平分data不动index)。 1.先查看表空间物理文件的物理路径 select b.file_name 物理文件名,b.tablespace_name 表空间,b.bytes/1024/1024 大小M,(b.bytes-sum(nvl(a.bytes,0)))/1024

2013-01-26 16:31:39 921

原创 清表后 表空间缩减情况

背景: t_t_busi_main_presend 和 t_busi_main_presend3 表,是差不多的(t_busi_main_presend3清理前有92万数据,t_busi_main_presend是80万),只是多条t_busi_main_presend3记录可能汇到一条t_busi_main_presend中。 现在先清理t_busi_main_presend3将2013-0

2013-01-23 21:20:04 771

原创 某字段不走索引分析

表t_busi_main_presend2建了索引T_BUSI_MAIN_PRESEND2_SHSTATUS在SHSTATUS字段,SHSTATUS char(1) default '0',只有2个值 '0' ,'1'。初始值为‘0’,处理之后为‘1’,表中几十万数据,大部分为‘1’,现在有8条为‘0’。 现在,建索引(类型为normal,不能bitmap,会锁)后,下面语句竟然是全表! se

2013-01-21 17:18:05 1255

原创 js 时间日期 校验格式 比较大小等(判断页面选择时间只能在早8点到晚8点之间)

知识点1:页面传入的是否是正确的日期+时间类型 1.新建/include/js/checkDate.js checkDate.js function IsValidYear(psYear) { var sYear = new String(psYear); if(psYear==null) { return false; }

2012-12-31 18:27:33 3091

原创 WebserviceTest TestClient

package com.test; import java.net.MalformedURLException; import java.net.URL; import java.rmi.RemoteException; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; impo

2012-12-24 14:38:54 922

原创 js操作table tr

//给table增加一行 function addTableRow() { var table1 = document.getElementById('table1'); var cloneTab = document.getElementById('table2'); //alert(cloneTab.firstChild.firstChild.i

2012-12-13 15:16:08 4607

原创 曲线图

原版本: 曲线图 var chart; $(document).ready(function() { chart = new Highcharts.Chart({ chart: {

2012-12-05 17:05:23 2434

转载 oracle权限详解

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2010-10/29075.htm 一、权限分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、系统权限分类: D

2012-11-16 16:50:14 1162

原创 oracle case when

1.标准的(case结束是end case,但是用end也可以,2就是,可是1中不能直接用end,会报错) if tmpmoshiid is not null then CASE WHEN (main2.allcount<=100) THEN select t_0_100 into tmpkcbili from t_cl_moshi where id=tmpmoshi

2012-11-16 15:23:55 1698

原创 oracle生成不重复随机数

1.创建FUNCTION fn_ifrandom(其中用到递归) CREATE OR REPLACE FUNCTION fn_ifrandom (tmpallrandom IN clob,tmprandom IN VARCHAR2,allcount in number) RETURN varchar2 IS --生成不重复的随机数 randomchar varchar2(5);

2012-11-16 15:17:48 16710

转载 在存储过程中的clob数据类型

客户新上线的一套重要生产系统,某个存储过程每小时调用约11万次,每次调用的逻辑读超过了10000,消耗的CPU占数据库CPU Time的25-30%。很显然,这样一个存储过程是值得优化的。 不幸的是,这个存储过程的业务逻辑很复杂,光是参数就有9个。而存储过程所在的包其代码超过了1万行。通过复查代码的方式,耗时耗力,还不一定能够找出问题。 诊断性能问题,首要的是了解这个存储过程所大概要完成的业务

2012-11-15 17:25:49 1423

原创 PL/SQL记录和表(oracle type(数组))(最简单!文章下面标黄标题是精华,必看)

PL/SQL记录和表 1.使用%TYPE  (用于基本数据类型) 例1(用户并不知道Course_No的数据类型,只知道他是基于Student_No数据类型的,随着Student_No的类型变化而变化): DECLARE ... Student_No INTEGER; ... Course_No Student_No%TYPE; 例2(表示BrowsePath的数据类型是基于表Bo

2012-11-12 17:13:15 11296

原创 批量更新某字段内容的部分内容 replace(要替换的字段,'被替换的字符串,'替换成的字符串')

要求: 一个字段值: ………………预约………… 要将其中 “预约”,改成“预定”。 但是我开始写的时候,写成了 update ..set smscontent = replace ('预约','预定') 于是悲剧发生了,这些要改的内容,全部改成  “预定'”  了。于是,改回来。 1.先把改错的内容改回原样。 update t_busi_presend_mx mx set mx.

2012-05-21 19:48:31 8868

转载 ORA-07445: 出现异常错误: 核心转储(oracle bug)

近来在测试时碰到一莫名问题,研发声称在开发环境中正常,而我们在测试环境中则经常遭遇,几番折腾,发现是oracle的bug所致。不过即使是oracle出bug,人家在metalink上也井井有条的写着从哪个版本到那个版本存在这样的问题,在什么版本上可以fix掉这个bug,在什么条件下会触发这个bug,又通过什么样的解决方案可以把这个bug规避掉。 所以说,bug到处都会有,而怎样让已知bug不会成

2012-05-04 10:02:12 66399

原创 dblink

需求: 要从146上能查询111的数据并将111的数据直接Insert进146. 方法: 1.在146上创建到111的dblink 2.不用在146本机的tnsnames.ora文件中,配置一个指向111的服务,直接146上(其中SERVICE_NAME要在111中select name from v$database;):   create database link link146_

2012-02-16 16:37:23 4185

转载 dbms_stats.gather_table_stats与analyze table 的区别[转贴]

参考 http://www.itpub.net/viewthread.php?tid=845777&extra=&page=1 Analyze Statement The ANALYZE statement can be used to gather statistics for a specific table, index or cluster. The statistics can be

2012-02-09 22:02:50 1239

原创 创建oracle数据库,及建完后各种优化

磁盘划分 名称 大小 用途 C 盘(主盘) 50G 安装Windows 2003 64bit 系统 D 盘 184G /oracle  安装数据库软件目录     /oracle/oradata 数据文件目录 E 盘(主盘) 116G /oracle/oradata 回滚段、临时表空间、日志文件目录(重做日志组(6个,每个500M,后期

2012-02-07 20:34:21 5085

原创 oracle split去逗号,行列转换

1.针对  '1','2','3','4','5'(逗号在字符串外面) SQL> SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); COLUMN_VALUE -----------------------------------------------------------------

2012-02-03 16:07:22 36917

原创 oracle索引(函数索引,以时间区分每天)

不是啊,建太多会影响性能的,维护成本也很大 一般在关键字段上建立 例如 where 后面有很多字段,其中有 logtime 字段,你在这个字段上建立索引, 查询是根据 logtime 字段指定时间条件就会过滤掉绝大部分记录,剩下的即使全表扫描也不会太多,从而影响查询速度   我们业务基本都是以 时间类型 建立函数索引的 比如   create index emp_ind

2012-02-02 11:24:05 6472

原创 oracle创建job,oracle异常处理

在命令窗口中执行。  variable后面的变量名要和 后面  job=> :job(这个一样),要不然会报“并非所有变量都已绑定”错误。执行成功后,job号会由oracle自动生成。 一般在用job调用存储过程中,会在存储过程中加oracle异常处理,否则job出错后无法查错。 1.创建job(注意其中next_date要写好!需要什么时间,就写什么时间) variable job1 n

2012-02-02 11:15:10 3575

转载 oracle 抓出cup执行时间最多,执行次数最多的sql语句

遭遇cpu过多占用,表现为%usr很高,top 或者topas中cpu占用最多的进程为oracle server process. 则根据pid可以找出该pid对应的sql_text select se.username,se.machine,sq.cpu_time,sq.sql_text from v$process p,v$session se,v$sqlarea sq whe

2012-02-02 10:42:07 6049

原创 oracle存储过程循环插入10000条数据

create or replace procedure aa as begin for i in 1..200000 loop insert into t_1_mtbuf(id,msg,mobile,spcode) values(seq_bufid.nextval,'00000','15900000000','8888'); end loop; en

2012-01-15 11:14:01 7028

原创 oracle判断是否为数字或数字型字符串(sqlserver isnumeric)

需求: 如果字段值不是数字或者数字型字符串,把该字段值update成''  1.函数法(不能批量,舍弃): create or replace function isNumber(p_in varchar2) return boolean as i number; begin i:=to_number(p_in)

2012-01-14 16:29:49 5296

原创 oracle中substr函数的用法(sqlserver right)

oracle: 语法: substr(string,a,b): a:从第几位开始,第一位a=1,倒数第三位(即sqlserver中的right)a=-3 b:取几个字符  substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test

2012-01-14 10:54:04 4162

原创 oracle批量update

需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表。 1.错误的写法: update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a); 这种写法,会更新t1表中的所有行:如果t1.a=t2.a的,就更新t2中查出的记录进t1;如果t1.a 正

2012-01-14 10:09:32 16181 2

原创 oracle sql%rowcount 返回影响行数

sqlserver中,返回影响行数是:If @@RowCount oracle中,返回影响行数是:If sql%rowcount 例: sqlserver: AS BEGIN Update T_Mt Set Stat=@Stat,OStat=@Stat,RptTime=Getdate() Where MsgId=@MsgId If @@RowCount<1 --没有更新

2012-01-13 15:56:44 24391

原创 update commit后找回update前数据

t_sys_client  1.首先创建临时表 create table tmp as select * from t_sys_client where 1=0; 2. 将查询的记录插入到 临时表 insert into tmp select * from t_sys_client  as of timestamp sysdate-10/1440; --10分钟之

2012-01-12 14:32:03 1209

原创 oracle表空间创建删除,omf,分区表创建

现在有个每天至少300W数据的表(mt),打算以每月分区的方式建成分区表,分区时,《让oracle跑的更快2》P21说: SQL>alter system set db_create_file_dest='F:\oradata\orclyxkj\tbs_test_t_mt_2012';SQL>create tablespace ts_mt_2012_1 datafile size 50M aut

2012-01-11 13:45:49 4744 1

原创 oracle kill session.delete 600w(1.25G)数据 1个多小时无结果

mx表中数据太多,查询变慢,备份去年2011年的,然后将2011年数据删掉。  delete from t_busi_presend_mx where cjsj 这个语句,执行1个多小时了,没有反应,现在决定,把这个session删掉,想别的方法来删除这600W数据,kill session方法如下(按顺序执行sql)。某DBA给我分析: 1.select sum(bytes/1024/10

2012-01-09 15:27:30 2933

原创 oracle普通表 临时表 awr统计分析

业务需要,我在oracle中建了一个名为 t_0_mtbuf 的表,用建普通表的语句建的,其实这个表的作用是临时表的作用,即: java中每次select 1500条出来,再在循环中逐个insert 进sqlserver数据库,然后在oracle中将这条记录删掉。 但是这样运行了一段时间,今天,表里缓存了6W多条数据,之前是几十甚至100的走的,现在是2条,1条的走,数据走不动了,问题很严重。

2012-01-05 20:03:38 1467

转载 oracle分区表的建立方法(包含已经存在的表要分区)

Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。 分区提供

2012-01-05 10:24:55 22361

原创 oracle启动 init.ora spfile pfile

昨天晚上快下班的时候,公司数据库突然堵住了,一个buf表中累计了20多W的数据提取不出来,改了程序,效果不明显。因为之前有一次也重启过oracle,所以这次还是想把oracle重启一下,因为那些数据都是客户要发送出去的东西,比较急,所以,经理就去机房把oracle重启了。他怎么重启的我也不知道,我只知道,重启之后,oracle起不来了。。那个电话啊。。那个催促啊。。   >cmd >sqlp

2011-12-29 14:45:07 9798

原创 excle函数(统计,替换等)

1.统计    bug统计时,要统计“待处理”,“处理中”,“已处理”这3个在某个excle中的出现次数,那么在统计个数的框内输入函数:    =COUNTIF(K3:K101,M2)    其中,K3:K101是从K列第3行到K列第101行的内容进行统计,M2是统计的是M2这个单元格内的字(待处理,处理中,已处理这些写在M2里面) 2.替换    要把某一列中的“3"替换成"发送成功"

2011-12-22 20:59:54 1022

原创 windows远程linux(centOS 5.6)

用了2个工具: 1.secureCRT(securecrt.zip)(这个没有图形界面,全部命令行)    协议:ssh2    主机名:192.168.1.111(#hostname -i出来的是127.0.0.1,这个ip和localhost是一个意思,所以这里写127.0.0.1是行不通的,要#ifconfig查看ip)    端口:XXXX(端口不是默认的22,端口修改,详见htt

2011-12-22 20:26:50 1835

Oracle数据库SQL-第6章存储过程、函数和包

详细讲解Oracle数据库SQL-第6章存储过程、函数和包,其中有例子

2011-11-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除