自定义博客皮肤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 5090

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

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

2013-09-02 19:25:20 2190

原创 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 3750

原创 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 1969 1

原创 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 771

原创 oracle 清大表

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

2013-02-02 11:39:49 772

原创 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 827

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

背景: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 683

原创 某字段不走索引分析

表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 1071

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

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

2012-12-31 18:27:33 2913

原创 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 826

原创 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 4509

原创 曲线图

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

2012-12-05 17:05:23 2309

转载 oracle权限详解

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

2012-11-16 16:50:14 1010

原创 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 1587

原创 oracle生成不重复随机数

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

2012-11-16 15:17:48 16254

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

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

2012-11-15 17:25:49 1314

原创 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 11035 1

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

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

2012-05-21 19:48:31 8702

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

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

2012-05-04 10:02:12 63723 1

原创 dblink

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

2012-02-16 16:37:23 3928 4

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

参考 http://www.itpub.net/viewthread.php?tid=845777&extra=&page=1Analyze StatementThe 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 1170

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

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

2012-02-07 20:34:21 4550 1

原创 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 36555

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

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

2012-02-02 11:24:05 6196

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

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

2012-02-02 11:15:10 3480

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

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

2012-02-02 10:42:07 5861

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

create or replace procedure aaasbegin 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 6860

原创 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 4983

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

oracle:语法:substr(string,a,b):a:从第几位开始,第一位a=1,倒数第三位(即sqlserver中的right)a=-3b:取几个字符  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 4021

原创 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 15835 2

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

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

2012-01-13 15:56:44 24055

原创 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 1129

原创 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 4451 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 2712

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

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

2012-01-05 20:03:38 1364

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

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

2012-01-05 10:24:55 21580

原创 oracle启动 init.ora spfile pfile

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

2011-12-29 14:45:07 9501 1

原创 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 938

原创 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 1757

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

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

2011-11-27

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

TA关注的人

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