`
jak47
  • 浏览: 73997 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论
文章列表
工作中常常要对两台不同DB服务器的schema进行比较。比如测试机器和本番机器。 比较内容有各个表的字段的长度,属性,还有index等。 采取的办法是执行下面三个sql文,把DB情报生成出文件,然后对文件进行diff处理。   1. 抽出各个表的字段情报。 set echo off; set linesize 30000; set pagesize 32767; set trimspool on; set autocommit off; set exitcommit off; set null NULL; COLUMN DATA_TYPE FORMAT A20; ...
shell里面,常出现程序执行结果既要往终端输出,又要往log文件输出的情况,这时候一般都使用tee。 例如: #!/bin/sh command | tee -a out.txt ST=$?   但是现在变量ST里设置的返回值是tee命令的返回值,而不是command的返回值, 所以出现即使command执行结果出错,可变量ST的值仍是正常0的情况。   解决办法是使用环境变量PIPESTATUS, 这个数组型变量里面存放用"|" 隔开的各个命令的执行结果。 上例是想取缔一个命令的执行结果,所以代码应该如下 #!/bin/sh co ...
在shell里面,需要对输入文件进行一些比较复杂的逻辑判断的时候,就有可能用到awk了。 例如,如果某固定长文件,第86列开始的4个字节是年份,只抽出年份>2014的行的时候,代码如下   #!/bin/sh in_file=/home/xxx/xxx.in out_file=/home/xxx/xxx.out year=2014 cat ${in_file} | awk -v day="$year" '{FIELDWIDTHS="85 4"} {F=$2; if (F > day) print $0;}' > ...
在shell里面,按行读取文件得注意设置环境变量IFS,否则无法正确读入。 具体例子如下   OLDIFS=$IFS IFS=$'\n' xxx_file=/home/xx/xxx.txt in_file=/home/xxx/xxx.in for pattern in $(cat ${xxx_file}) do grep -v -e $pattern ${in_file} done IFS=$OLDIFS   要按行读取csv文件时候,代码如下 IFS="," sed "1,3d" ${input_f ...
下面是我自做的pro*cobol + micro focus cobol编译用makefile   1. 共通定义common.mak export COBCPY=../cpycom export COBIDY=../../obj DBCONN = xxx/xxx@orclxx' COB = cob64 PROCOB = $(ORACLE_HOME)/bin/procob RM = rm -f MV = mv CP = cp CPYDIR = ../cpyxx APLLIBDIR = ../../lib OBJDIR = ../../obj EX ...
micro focus cobol 默认只能处理大小不超过2GB的文件,如果想要处理更大的文件,配置文件extfh.cfg里面应加入下面内容   [XFH-DEFAULT] FILEMAXSIZE=8 IDXFORMAT=8   FILEMAXSIZE={4|8}   4是指2GB以下,8指文件大小无限制。 IDXFORMAT={0|1|3|4|5|6|8}, 8指大容量index文件形式,默认是3
linux平台上用C读取csv文件一种方法, 但是对NULL项目无效,比如两个连续逗号的项目。   fscanf和scanf的格式里面,可以用%[^...]来指定读取除括号以外的文字。   比如有如下csv文件 test01,10,11,1.0,1.1 test02,20,21,2.0,2.1 test03,30,31,3.0,3.1    那么读取CSV文件的代码如下 #include <stdio.h> int main(void) { FILE *fp; char *fname = "comma.csv"; ...
自用的用来编译pro*c 代码的makefile, 包括2个部分,一个是common.mak, 定义一些共通属性,一个则是用来编译main程序。   1. common.mak .SUFFIXES: .pc .c vpath %.h ../inc vpath %.tbl ../tbl CC = gcc PROC = proc LD = ld RM = rm -f DEBUGFLAG = -g CFLAGS = -W -Wall -DISA_DEBUG -c PROC_CFLAGS = INC = ../inc TBL = ../tbl OBJ = .. ...
struts2里面防止日文乱码有两种写法   1.  修改struts.xml, 加入以下代码   <constant name="struts.i18n.encoding" value="Windows-31J"/>   2. 本人未验证过,先记下来。是修改web.xml, 据说可以覆盖struts.xml里的设定 <filter> <filter-name>struts2</filter-name> <filter-class>org ...
HTML中,让checkbox后面的文字象checkbox一样变成可点击生效的写法有两种   1. 用label包括checkbox   <label><input type="checkbox" id="milk" value="milk">Milk</label>   2. 使用label的for属性,但要匹配上checkbox的id <input type="checkbox" id="checkbox_id" value=&quo ...
linux默认语言编码环境是UTF8,要设置成shift-jis日语环境要做以下处理。   1. 追加sjis的locale  # localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.SJIS   2. 确认是否追加成功   # locale -a |grep ja 应出以下结果 ja_JP ja_JP.SJIS ja_JP.eucjp ja_JP.ujis ja_JP.utf8 japanese japanese.euc japanese.sjis   3. 设置LANG环境变量   # ...
通过sed替换固定长文件中某个位置开始的字符串 比如要把从第100个字节开始的8个字符替换成今天的日期,代码应该如下   #!/bin/sh in_file=./xxx.in out_file=./xxx.out today=20150101 sed -e "s/\(^.\{99\}\)[0-9]\{8\}\(.*\)/\1${today}\2/" ${in_file} > ${out_file}  
 在shell里面通过调用sqlplus取得oracle系统时间并返回shell的一种方法   #!/bin/sh today=`sqlplus -l -s ${LOGON} << EndOfSQL whenever sqlerror exit 1 ROLLBACK set heading off select to_char( sysdate, 'yyyymmdd' ) from dual; exit 0 EndOfSQL` today=`echo $today ...
在sqlplus里面,执行下面语句,就能看到当前oracle server的版本。   select * from v$version  
安装redmine时候, 中途出现以下错误: rake config\initializers\session_store.rb Please install RDoc 2.4.2+ to generate documentation. rake aborted! Don't know how to build task 'config\initializers\session_store.rb'   按照上述提示,需要安装rdoc,可是安装rdoc,又必须安装DevKit,具体安装步骤如下: 从rubyinstaller 的网站下载DevKit,并解压到硬盘上,比如c:\ ...
Global site tag (gtag.js) - Google Analytics