摘要:有这样一条sql:select c_lx from t_table where n_id=1;查询结果为:1;2;3;4;5;6;有没有这样一个函数,将该记录以‘;’切分并转换为多行的结果集,如:123456注意:是结果集(6行),而不是一条纵向显示的记录。我知道oracle有wm_concat函数,可以将多条记录合并成一条,并以逗号分割。使用场景:如代码类型,控件保存时是以‘5;6;7;8;9;10;’的格式保存在一个字段里的,一般对应的代码名称都会冗余一列,如‘工人;农民;干部;’,但是很多地方并没有冗余,在展示的时候,翻译代码时便出现了麻烦,所以如果存在一个函数,将该代码值切分并以多条结
阅读全文
摘要:现在有这样一个需求,要求计算两个日期间的工作日天数,要求除去节假日,其中节假日有一张配置表,具体的格式如下:开始日期结束日期节假日类型节假日名称2013-08-10 2013-08-12 法定 端午节2013-01-012013-01-03 法定 元旦要求计算两个日期间的天数时要将周末时间去掉,还要将节假日区间的天数排除:select count(*) from (select to_date('2010-01-01', 'yyyy-mm-dd') + LEVEL - 1 as days from dual CONNECT BY to_date('2..
阅读全文
摘要:http://www.oschina.net/question/129540_23215HTTP 协议本身是“连接 - 请求 - 应答 - 关闭连接”的模式,是一种无状态协议;然而随着 web 动态化的需求,我们往往需要把两次连续的请求关联起来,从而使得客户端和服务端的会话变得有状态。Session 就是满足这种需求的一种实现方式。它的基本原理是服务器端为每一个 session 管理一份会话信息数据。而客户端和服务器端依靠一个全局唯一标示符 —— sessionID 来访问会话信息数据。当用户访问 web 应用时,服务器端会先检查客户端的请求里是否包含 sessionID,如果没有或者检索不到
阅读全文
摘要:1.JdbcTemplate 当不使用事务时,jdbcTemplate的模板类,通过 Connection con = DataSourceUtils.getConnection(getDataSource()); 方法,首先去当前线程的上下文中寻找绑定的数据库连接,若没找到,则新建一个连接,即从DataSource中创建一个新的连接:ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource); if (conHolder != ...
阅读全文
摘要:某行综合报表平台自上线以来,ETL耗时越来越长,日批处理耗时约为4小时30分钟到6小时,月批处理耗时约为12小时到14小时,并且耗时越来越长,RAC节点间流量达到80M/S,冲突非常大,CPU很高。库的问题非常多,比如该sql:Elapsed Time (s)CPU Time (s)Executions Elap per Exec (s) % Total DB TimeSQL IdSQL ModuleSQL Text19,57865836525.842.310w08q2c6s0dtxselect * from ( select row$_.*...可见该语句运行了6525.84秒,将近2个小时
阅读全文
摘要:SQL> create tablespace maclean datafile size 10M;Tablespace created.SQL> alter tablespace maclean add datafile size 10M;Tablespace altered.SQL> alter tablespace maclean add datafile size 10M;Tablespace altered.SQL> select name,file# from v$DATAFILE;NAME FILE#-----------------------------
阅读全文
摘要:介绍一个在web上通过oracle注入直接取得主机cmdshell的方法。以下的演示都是在web上的sql plus执行的,在web注入时 把select SYS.DBMS_EXPORT_EXTENSION.....改成/xxx.jsp?id=1 and '1''a'||(select SYS.DBMS_EXPORT_EXTENSION.....)的形式即可。(用" 'a'|| "是为了让语句返回true值)语句有点长,可能要用post提交。以下是各个步骤:1.创建包通过注入 SYS.DBMS_EXPORT_EXTENSION
阅读全文
摘要:[1]、只有输入IN参数,没有输出OUT参数[2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表)[3]、既有输入IN参数,也有输出OUT参数,输出是列表[4]、输入输出参数是同一个(IN OUT)create table TMP_MICHAEL( USER_ID VARCHAR2(20), USER_NAME VARCHAR2(10), SALARY NUMBER(8,2), OTHER_INFO VARCHAR2(100))insert into TMP_MICHAEL (USER_ID, USER_NAME, SALARY, OTHER_INFO)v...
阅读全文
摘要:类装入和更新检测(Class loading and update detection settings)菜单路径:Applications < Application Types < WebSphere enterprise applications < application_name < Class loading and update detection.然后选上类重新装入选项的复选框:覆盖 Web 和 EJB 模块的类重新装入设置(Override class reloading settings for Web and EJB modules)启用定时重新加
阅读全文
摘要:在oracle下创建一个test的账户,然后按一下步骤执行:1.创建表:STOCK_PRICESView Code--创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRIMARYKEY, PRICE NUMBER(7,2), UPDATED DATE );2.插入测试数据:View Code--插入数据INSERTINTO stock_prices values('1111',1.0,SYSDATE);INSERTINTO stock_prices values('1112',2.0,SYSDATE);INSERTIN
阅读全文
摘要:使用 UltraEdit 打开 .class 文件,第一行内容:00000000h: CA FE BA BE 00 00 00 32 00 A9 07 00 02 01 00 37 ; 漱壕...2.?....7前四个字节为固定的 CA FE BA BE ,接下来的四个字节为次版本号(0000)和主版本号(0032)。32:JDK1.631:JDK1.530:JDK1.42F:JDK1.3
阅读全文
摘要:1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以达到节约资源的目的第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信-2.尽量避免随意使用静态变量要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如public class A{static B b = new B();}此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会
阅读全文
摘要:package com.thunisoft.in4.cm.associate.util;import java.util.List;import java.util.Map;/** * 编辑距离算法 * * @author fanxf * */public class HanziParse { /** * 计算矢量距离 Levenshtein Distance(LD) * * @param str1 * str1 * @param str2 * str2 * @return ...
阅读全文
摘要:Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行。进入安装目录#cd /home#cp jdk-1_5_0_02-linux-i586.rpm /usr/local#cd /usr/local给所有用户添加可执行的权限#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin#./jdk-1_5_0_02-linux-i586.rpm.bin此时会生成文件jdk-1_5_0_02-linux-i586.rpm,同样给所有用
阅读全文
摘要:满足以下3个条件才能自动解决依赖性:1.使用rpmdb -redhat(在安装时会自动弹出依赖性错误)2.所有互相依赖的软件都必须在同一个目录下面。3.调用-aid参数。
阅读全文
摘要:[oracle@sunny stage]$ rman target /Recovery Manager: Release 10.2.0.1.0 - Production on Sun Mar 18 17:21:22 2007Copyright (c) 1982, 2005, Oracle. All rights reserved.connected to target database: ORCL (DBID=1141870147)RMAN> backup archivelog all;Starting backup at 18-MAR-07current log archivedusi
阅读全文
摘要:rman 全库备份脚本run {allocate channel d1 type disk;allocate channel d2 type disk;backup full database format '$back_path/`date +%Y%m%d`_full_%d_%s_%p_%u.bak'tag='full' include current controlfile;sql 'alter system archive log current';backup archivelog all format '$back_path/`
阅读全文
摘要:1.安装TimeSten2.安装时要指定TNS_ADMIN_LOCATION,即tnsnames.ora的路径,因为tt会根据这个连接Oracle。C:\TimesTen\tt1122_32\network\admin\,要具体到目录而非文件。配置过程:注意事项:1.Oracle和TimeSten之间同步的用户名必须一致,也就是Cache Manager用户名必须相同。2.Oracle和TimeSten的数据库编码方式必须一致,否则会关联失败。3.Oracle版本和TimeSten版本必须一致,否则有可能出现数据类型影射失败的情况。4.在定义CacheGroup时,TimeSten会根据Cac
阅读全文
摘要:1:首先使用TOP命令传到占用CPU高的SPID号PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle2:使用DBA账户登录数据库,使用以下SQL语句查询:SELECT * FROM V$PROCESS WHERE spid=3575;查询到SQL相关信息3:根据以上查询到的信息使用以下SQL查询:SELECT sid, program
阅读全文
摘要:1.通过操作系统的命令找到系统资源的bottleneck,如:CPU, Memory, I/O, Network 同时主要关注IOWait, PI/PO, Memory的使用情况2.通过查询v$sys_time_model来观察系统整体在基于time的标准上整体的运行状况.SQL> select * from v$sys_time_model; STAT_ID STAT_NAME VALUE---------- ------------------------------ ----------3649082374 DB time 97725560232748282437 DB CPU 6
阅读全文
摘要:Problem(Abstract)When converting contents from a file or string using WebSphere Application Server, numbers may be converted to their word equivalents, especially if using PDFBOX to extract text, along with sun.io.MalformedInputExceptions.SymptomText extracted from UTF-8 sources, such as PDFs, are d
阅读全文
摘要:服务器端主要是安装memcache服务器端。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)官网:http://www.monkey.org/~provos/libevent/用wget指令直接下载这两个东西.下载回源文件后。1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./config
阅读全文
摘要:问题:有一个连续文件,其中保存了40亿个数字,其中有重复的数字,要求在不到1MB内存空间的前提下,寻找出现两次以上的数字。原理: 将这些数字读出来取其二进制编码,如:0000000100100011010001010110011110001001101010111100遍历这些串,首先取第一位,如果是0,存入文件1,如果是1,存入文件2;然后以文件1为输入,取第二位,判断第二位的数字再次进行分类。这样递归分析完所有的文件,重复的数字会被归并到一个文件中,单独出现的数字会保存到一个单独的文件中。以下是java代码实现,以16位长度为例:先制造数据:import java.io.IOExcep..
阅读全文
摘要:安装缺失的包:用 root 用户身份运行以下命令:rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel如果采用默认安装,该命令执行后通常会提示openmotif,compat-db,compat-gcc,compat-gcc-c++,compat-libstdc++,compat-libstdc++-devel 没有安装。如果没有安装,加载光驱并挂载,安装相关的包:1.1 在/mnt 下创建cd...
阅读全文
摘要:1、修改/etc/vsftpd/ftpusers和/etc/vsftpd/user_list中关于root的行,注释掉即可;2、关闭SELinux;如果不想关闭的话,可以打开home项的布林值:setsebool -P ftp_home_dir on3、查看iptables规则,清空所有规则或添加相关规则以允许vsftpd通过。用root或者其他账号连接ftp,提示:C:\Documents and Settings\zhangxsh.ETHER>ftp 172.20.70.251Connected to 172.20.70.251.220 (vsFTPd 2.0.5)User (172
阅读全文
摘要:如果选择桥接,需要设置网卡通过哪个物理网卡桥接,桥接代表当前虚拟机通过本机的网卡直接连到网络中,本机网卡作为一个交换机直连.因此需要确定使用哪个网卡桥接,一般在单网卡的时候选择自动即可,多网卡时需要指定桥接的网卡.而如果使用NAT方式,则必须设置网卡以及进行虚拟网络编辑器,指定DHCP的配置。
阅读全文
摘要:这是炎热小镇慵懒的一天。太阳高挂,街道无人,每个人都债台高筑,靠信用度日。这时,从外地来了一位有钱的旅客,他进了一家旅馆,拿出一张1000元钞票放在柜台,说想先看看房间,挑一间合适的过夜。就在此人上楼的时候,店主抓了这张1000元钞,跑到隔壁屠户那里支付了他欠的肉钱。屠夫有了1000元,横过马路付清了猪农的猪本钱。猪农拿了1000元,出去付了他欠的饲料款。那个卖饲料的老兄,拿到1000元赶忙去付清他召妓的钱(经济不景气,当地的服务业也不得不提供信用服务)。有了1000元,这名妓女冲到旅馆付了她所欠的房钱。旅馆店主忙把这1000元放到柜台上,以免旅客下楼时起疑。此时那人正下楼来,拿起1000元,
阅读全文
摘要:/* * Diff Match and Patch * * Copyright 2006 Google Inc. * http://code.google.com/p/google-diff-match-patch/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *
阅读全文
摘要:昨天晚上在看Oracle 10G联机文档中关于bigfile tablespaces的描述(引用1),发现了关于Oracle存储极限的简单描述。bigfile tablespaces的存在,让Oracle具有了海量数据存储和管理的能力。Bigfile最多可以有2的32次方(4G)个block(引用2),假设block size为最大值32KB,那么单个bigfile文件的大小就是4G*32KB=128TB,由于每个数据库最多只能包含64K个数据文件,那么假如Oracle全由bigfile组成,那么oracle最大的存储量为128TB*64k=8EB第一次听说EB,8EB是什么概念呢?BCZ:1
阅读全文
摘要:第一部分 棉花数据库问题和分析1.问题sql数据库的版本是9i,问题sql有两个:Sql1:SELECTc_lotno FROM b_ctn_normalWHERE d_prodatetime BETWEEN to_date('2011-07-01', 'yyyy-mm-dd HH24:MI:SS') AND to_date('2012-07-03', 'yyyy-mm-dd HH24:MI:SS') AND n_madein = 65 AND rownum 15分钟00: 04: 31.62优化后30<0.4秒00: 00
阅读全文
摘要:早上到公司,收到一条cocall消息,是某哥们遇到的疑惑,可能很多新手并不知情:请教个问题我执行1. select * from t_htgl_htpswj t where t.c_wjmc = '山西'; 结果是 存在一条记录2. select * from t_htgl_fj t where t.c_wjmc = '山西'; 结果是不存在记录3. 为什么执行 select count(*) from t_htgl_htpswj htpswj where htpswj.c_wjmc not in (select fj.c_wjmc from t_htgl_fj
阅读全文
摘要:@echo off:aset port=echo.&set /p port=输入端口号:clsif not defined port goto :afor /f "tokens=2,4,5" %%a in ('netstat -ano^|find /i ":%port% "') do if not "%%c"=="" (set pid=%%c) else (set pid=%%b)for /f "tokens=1" %%a in ('tasklist /fi &q
阅读全文
摘要:oracle数据仓库中提供了很多非常实用的函数,一直以来接触过,但是却没有实际的用到,因为尽管有示例,当时看懂了,但是后续马上就忘了,今天岑敏强遇到了一个使用over的场景,于是一起探讨了下,第一眼分析,我隐隐的就觉得一些分析函数应该会用到,但是没想到是over。需求:在 t_zxxm_fy 这个表中,有三个字段 n_lxsbh、n_fyje、n_mqzt,其中一个n_lxsbh会对应多个 n_ysje,每个n_mqzt都不一样,现在要统计几个n_lxsbh的 n_fyje之和,但每个n_lxsbh的n_ysje只能取一条记录的值,即n_ysje需要按n_mqzt进行某种排序取第一条记录这个问
阅读全文
摘要:一直以来有一个困惑,一直没解决,昨天一哥们问我这个问题,决心弄清楚,终于得到了答案。先看下面这个函数:create or replace function fn_test(c_xm varchar) return varchar2 as V_P1 varchar(10);begin select name into V_p1 from t1 where 1 = 2;--将name查出赋值给v_p1 return 'test' || c_xm;end;这个函数很简单,是我写的一个测试函数,没什么意义,“select name into V_p1 from t1 where 1 =
阅读全文
摘要:维护型项目打包都是patch,每次需要将本次修改的文件提取出来,非常的麻烦,本人所在的项目一般都是用bc来比较,原来据说挺方便,但是后来目睹了过程,也觉得非常的痛苦,还容易出错。一直想解决这个费时费力的问题,曾开发过一个检验本地文件时间戳的工具,但是不怎么理想,无法解决多人协同开发的文件提取问题,后来又萌生了去svn服务器获取文件的想法,但是svn不保存class文件,又宣告失败,于是最终萌生了通过svn的修改日志去本地目录定位文件并提取的方法。最近有哥们问,于是整理出来:步骤:1.修改配置文件config.properties,设置相关信息2.项目成员提交所有的代码至svn,打包工程师更新环
阅读全文
摘要:通常有这种情况,某个表或者准确的说是表的某条记录被锁(TX锁),在业务层面排查之余,一般都会想知道是哪条记录被锁,每次被锁的是否是同一条记录?还是每次都不同?通过记录可以找到这条记录可以在哪个模块、哪个业务流程中被操作到,有助于定位问题。但是思前想后,好像不大好找,oracle的锁机制不同于一些数据库,oracle没有一个集中式的锁管理器,oracle的记录锁(行级排他锁存在于数据块上),只有事务到达那一行的时候才能知道这行是否被锁。举个例子,现在科技大厦的物业需要统计C座每层公司的门是不是都上锁了,那么有两种办法:1.物业有一张清单,每次某个公司上锁都要告诉物业一声:我的门锁了!于是物业记录
阅读全文
摘要:不久前在市检的生产环境上有个存储过程执行报错,错误信息如下:ORA-04068: 已丢弃程序包 的当前状态ORA-04061: package "ZHANGXSH.PR_TEST" 的当前状态失效ORA-04065: 未执行, 已更改或删除 package "ZHANGXSH.PR_TEST"ORA-06508: PL/SQL: 无法找到正在调用 : "ZHANGXSH.PR_TEST" 的程序单元ORA-06512: 在 line 2当然这个错误信息是我在我本机试验复现的,不是真实的报错信息,不过都是一样的开始怀疑是存储过程编译失败
阅读全文
摘要:上周三中午CQ数据库数据文件损坏,导致登录时一张关键的表无法查询报错从而cq无法登录,此次故障和上次的一样,不过恢复的非常曲折,导致停机两天,现简单的通报下恢复过程:故障原因:oracle-902版本的一个BUG,数据文件大小逼近4G、8G临界点时无法自动扩展,该bug在903版本后得到修复,但是公司cq库迟迟未升级,14号数据文件上保存了大量的大对象数据以及大部分cq系统表,在执行修改操作段扩张时逼近4G大小临界点从而报错,导致数据文件头不一致,数据文件被offline。。。上次故障也是同样的问题。解决方案:最终的解决方案为重建14号数据文件所在的表空间,全部使用小数据文件(1.9G+10M
阅读全文
摘要:物化视图日志(mview log)使用触发器实现,如果对表建立mview log,那么相比没有建立之前,操作表(dml),到底额外产生多大的性能开销?为此我专门做了一个测试:测试原理:进行db操作时,数据库都会生成一系列性能指标衡量诸种操作的开销,通过对一个测试表进行批量的dml操作,比较建立mview log前后的开销对比性能差距。过程如下:1.首先记录没有任何操作时的性能统计信息2.测试表进行频繁的dml操作。3.记录统计信息s1(集合)4.对表建立mview log,重复步骤25.记录统计信息s2(集合)6.计算s1-s2(集合差值)具体步骤如下首先建立测试表:creare table
阅读全文
摘要:CREATE OR REPLACE PACKAGE ftp AS-- ---------------------------------------------------------------------------- Name : http://www.oracle-base.com/dba/miscellaneous/ftp.pks-- Author : DR Timothy S Hall-- Description : Basic FTP API. For usage notes see:-- http://www.or...
阅读全文
摘要:Session对象的持久化比较麻烦,虽然有序列化,但是并不确定Session对象中保存的其他信息是否可以序列化,这可能是网上很多解决方案摒弃此种做法的原因,网上的很多做法都是将Session中的attribute信息持久化并结构化存储,这显然很方便,但是session中的其他信息就丢了,否则仍然占据中间件内存,通过查看源码,惊喜的发现Tomcat对象提供了Session序列化的接口以及相关实现(Store),不过不是很满足需求,对其进行了一些改造就ok了,最终,Session对象作为一个整体,以二进制的形式保存在blob中,当反序列化时,还要装配Session和SessionManager之间
阅读全文
摘要:BJJC网改版,计划将应用部署在tomcat集群上,集群的部署方案为Apache+Tomcat6,连接件为mod_jk,其中开启了session复制和粘性session。计划节点数为3个。到这,或许就可以中止了,tomcat集群谁不会建啊?实现了fail-over,当节点1处理会话时如果突然宕掉,那么其他节点会迅速接管而且不停顿的执行服务,对客户端完全透明,apache也很好的执行了lb,虽然还没有进行性能测试,但是起码横向扩展是没有问题的。但是,仔细想想,觉得还是有些问题。为了实现fail-over,启用了session复制,这每个节点都会留一份session的副本,对于大规模的访问,tom
阅读全文
摘要:工作也3年了,从无到有,从少到多,自己也写了很多技术文章和心得,最开始放在百度空间上,后来发现百度空间比较业余,所以又放到有道笔记上,有道笔记虽然方便,但是共享性比较差,所以,为了长久的记录、发展,积累自己的技术文章,决定还是在博客园上开辟新的博客,虽然现在才注册,可是文章从2010年就开始写了,后续会逐步的迁移上来。
阅读全文