77家的会客2010

月归档: 2009年07月 | 记录数: 10
RPG3常用操作码
Weather:None

命令 説明
ACQ 装置獲得(通信用)
ADD 加算
ANDXX AND条件追加
BEGSR サブルーチンの始め
BITOF ビットをオフにセット
BITON ビットをオンにセット
CABXX 比較および分岐
CALL プログラムの呼出し
CASXX サブルーチンの条件つき呼出し
CAT 2つのストリングの連結
CHAIN ファイルからのランダム検索
CHECK 文字検査
CHEKR 逆向きの検査
CLEAR 消去(モードクリア)
CLOSE ファイル・クローズ
COMIT コミット(更新確定)
COMP 比較
DEBUG デバッグ機能
DEFN フィールド定義
DELET レコードの削除
DIV 除算
DO 繰り返し実行
DOUXX 繰り返し実行(DO UNTIL)
DOWXX 繰り返し実行(DO WHILE)
DSPLY 表示機能
DUMP プログラム・ダンプ
ELSE 条件不成立の場合
ENDYY 構造化グループの終り
ENDSR サブルーチンの終り
EXCPT 演算時サイクル外出力
EXFMT 書出し後読取り形式
EXSR サブルーチンの呼出し
FEOD データの強制終了
FORCE 特定ファイルの強制読取り
FREE プログラムの非活動化
GOTO 強制分岐
IFXX 条件分岐
IN データ域の検索
ITER 繰り返し
KFLD キーの各部分の定義
KLIST 複合キーの定義
LEAVE DOグループからの抜け出し
LOKUP テーブルまたは配列要素の探索
MHHZO 上位桁から上位桁へのゾーンの転送
MHLZO 上位桁から下位桁へのゾーンの転送
MLHZO 下位桁から上位桁へのゾーンの転送
MLLZO 下位桁から下位桁へのゾーンの転送
MOVE 移動
MOVEA 配列の転送
MOVEL 左につめて転送
MULT 乗算
MVR 剰余の転送
NEXT 次
OCUR データ構造のオカレンスの設定 / 獲得
OPEN 処理用にファイルのオープン
ORXX OR条件追加
OTHER その他の選択
OUT データ域の書出し
PARM パラメーターの識別
PLIST パラメーター・リストの識別
POST ポスト
READ レコードの読取り
READC 次の変更済みレコードの読取り
READE 等しいキーの読取り
READP 前のレコードの読取り
REDPE キーが等しい前のものの読取り
REL 解放
RESET リセット
RETRN 呼出し元への戻り
ROLBK ロール・バック
SCAN 走査ストリング
SELEC 選択グループの始め
SETGT より大きいレコードへのセット
SETLL 下限のセット
SETOF 標識をオフにセット
SETON 標識をオンにセット
SHTDN 遮断
SORTA 配列の分類
SQRT 平方根
SUB 減算
SUBST サブストリング
TAG タグ
TESTB ビットのテスト
TESTN 数字のテスト
TESTZ ゾーンのテスト
TIME 時刻取得
UNLCK データ域のアンロックまたはレコードの解放
UPDAT 既存のレコードの変更
WHXX 真の場合に選択
WRITE 新しいレコードの作成
XFOOT 配列要素の合計
XLATE 変換
Z-ADD ゼロにして加算
Z-SUB ゼロにして減算

DB2(as400)数据分页SQL
Weather:None

方法1:

利用DB2自带(ORACLE一样)的”ROWNUMBER() OVER(ORDER BY sort-key)”函数来完成,用法如下

select * from (select rownumber() over(order by sortkey1 asc,sortkey2 desc,…) as rownumber_,* from dbname1 order by sortkey1 asc,sortkey2 desc) as temp_db where rownumber_ between ?start+1 and ?end

这种方法由于是DB2自带的,相对来说大量数据的时候效率可能会好点(待求证),但如果是查询的表比较多和条件比较多的时候感觉会有点混乱,容易出错.

 

方法2:

之前用过MSSQL的那种取出前一部分的最大ID然后再取比这个ID大的相对的page size数量的数量,这个方法比较通用一些,但问题是同样组装比较复杂,当然你可以弄到PROC里面,二是这个方法数据量很大的情况下,越往后的分页效率越低,并且效率变化很明显.

 

方法3:

使用”FETCH FIRST ?pagesize ROWS ONLY”,用法如下

select * from dbname1 where key not in(select key from dbname1 FETCH FIRST (page-1)*pagesize ROWS ONLY) FETCH FIRST pagesize ROWS ONLY

这种方法的效率现在还无从考证,但这种方法比较容易组装SQL,因为分页的部分虽然字符比较多,但全放在了条件语句后面.

 

综合三种方法,第二种需要一个排列的KEY,这样的条件,对于AS400里的DB2比较麻烦,因为我操作过的很多表,其实里面是没有用于排序的KEY甚至是没有KEY的,AS400采用自己的游标(类似一个内部的ID)来知道当前是第几条数据.第一第三种方法在KEY这方面相对好一些,但还不是太完美.

装UBUNTU装得郁闷
Weather:None

把家里那台破台式机重新利用,老瓶装新酒,打算装个UBUNTU SERVER玩儿,在公司下的ISO,在公司电脑上用VirtualBox装得很顺利,但就是打死配不上静态IP地址.,其它倒还是非常顺利,配服务改配置什么的.

郁闷就郁闷在家里这台破机器,先是自己没带移动硬盘,手机的数据线也不知道哪儿去了,ISO文件两天才弄回来;在别的地方先刻了一张,回来安装,一LOADING文件到22%的时候就出错,就LOAD不上来;类似的问题在之前电脑坏的时候装8.04的DESKTOP版的时候也有,后来的解决方法是从UBUNTU.COM申请了一张官方刻的盘才成功的,这次也申请了64位的盘,就是怕以后要用的时候再出现这种情况,果然出现了.

于是重新刻盘,特意对了一下ISO文件MD5值,和官网的一样;但是接着发现我的DVD双层记录光驱竟然无法刻录,有两个原因,一是因为XP的镜像刻录服务没启动,二是光驱竟然被识别成了CD光驱了,上网找原因才知道是光头有灰,用软布一擦果然如此这般.好嘛,开刻,用NERO刻了两张都是最后的时候出现数据块错误,MD.没办法,又得上官网上找方法,下了官方介绍的ISORecoder很小的一个专门刻录ISO镜像的软件,果然很好用,没有错误的情况下刻出来了;拿着这三张盘依次去试,竟然全都还是卡在22%,靠了,没法子了,并且我放在NTFS分区的ISO,在安装过程中竟然扫了一下扫出来,再选择就找不到了;三张盘之后,因为前天装了8.04DESKTOP,所以就从NTFS把ISO文件拷到了/HOME/USR/下了;再重启安装到22%,再去LOAD ISO,这次倒LOAD找到了,但竟然没找到/HOME下的那个,而把之前NTFS的找到了.分特,地所了,能用能装就行,好嘛,终于跑起来了….郁闷死我了.

Ubuntu常用命令与技巧

sudo apt-get install 软件名 安装软件命令
sudo nautilus 打开文件(有root权限)
su root 切换到“root”
ls 列出当前目录文件(不包括隐含文件)
ls -a 列出当前目录文件(包括隐含文件)
ls -l 列出当前目录下文件的详细信息
cd .. 回当前目录的上一级目录
cd - 回上一次所在的目录
cd ~ 或 cd 回当前用户的宿主目录
mkdir 目录名 创建一个目录
rmdir 空目录名 删除一个空目录
rm 文件名 文件名 删除一个文件或多个文件
rm -rf 非空目录名 删除一个非空目录下的一切
mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下
mv 文件名 新名称 在当前目录下改名
find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录
fdisk fdisk -l 查看系统分区信息
fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区
chown chown root /home 把/home的属主改成root用户
chgrp chgrp root /home 把/home的属组改成root组
Useradd 创建一个新的用户
Groupadd 组名 创建一个新的组
Passwd 用户名 为用户创建密码
Passwd -d用户名 删除用户密码也能登陆
Passwd -S用户名 查询账号密码
Usermod -l 新用户名 老用户名 为用户改名
Userdel–r 用户名 删除用户一切
tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包
tar –cvf benet.tar /home/benet 把/home/benet目录打包
tar –zcvf benet.tar.gz /mnt 把目录打包并压缩
tar –zxvf benet.tar.gz 压缩包的文件解压恢复
tar –jxvf benet.tar.bz2 解压缩
make 编译
make install 安装编译好的源码包
reboot Init 6 重启LINUX系统
Halt Init 0 Shutdown –h now 关闭LINUX系统
uname -a 查看内核版本
cat /etc/issue 查看ubuntu版本
lsusb 查看usb设备
sudo ethtool eth0 查看网卡状态
cat /proc/cpuinfo 查看cpu信息
lshw 查看当前硬件信息
sudo fdisk -l 查看磁盘信息
df -h 查看硬盘剩余空间
free -m 查看当前的内存使用情况
ps -A 查看当前有哪些进程
kill 进程号(就是ps -A中的第一列的数字)或者 killall 进程名( 杀死一个进程)
kill -9 进程号 强制杀死一个进程
常用apt命令:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装”-f = –fix-missing”
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
清理所有软件缓存(即缓存在/var/cache/apt/archives目录里的deb包 )
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove

Linux查看系统配置常用命令
Weather:None

系统

# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量

资源

# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载

磁盘和分区

# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况

网络

# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息

进程

# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态

用户

# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务

服务

# chkconfig –list       # 列出所有系统服务
# chkconfig –list | grep on    # 列出所有启动的系统服务

程序

# rpm -qa                # 查看所有安装的软件包

转载于:猫言猫语

#sudo aptitude #进入软件包管理界面