DOSバッチファイル: コマンドの出力を変数に格納(代入)する

date /T の出力を変数 b に代入する。

@echo off

for /F "USEBACKQ" %%a in (`date /T`) do (
  echo a = %%a
  set foo=%%a
)

echo a = %%a
echo foo = %foo%

pause
結果:
>test.bat
a = 2009/05/25
a = %a
foo = 2009/05/25
続行するには何かキーを押してください . . .
2009/05/25

ksh / Korn shell メモ

if + 複数の条件

if [ 0 = 0 ] && [ 1 = 1 ] ; then 
  echo OK 
else 
  echo NG 
fi
#=> OK

if [ 0 = 0 ] && [ 1 = 2 ] ; then 
  echo OK 
else 
  echo NG
fi
#=> NG

ユーザに YES/NO を選択させる

choice="null"

while [ $choice = "null" ] ; do
  printf "Type yes/no: "
  read choice
  case $choice in
  yes)
    echo YES; break
    ;;
  no)
    echo NO; break
    ;;
  *)
    choice="null"
    ;;
  esac
done

先頭に0を付けると8進数扱いになる

$ printf "%d\n" 07
7
$ printf "%d\n" 08
printf: 3016-002 08 は完全には変換されませんでした。
0
$ printf "%d\n" 010
8
10進数として扱うために expr を使う。
$ echo `expr 08`
8
$ echo `expr 09`
9
$ echo `expr 10`
10

処理の開始・終了時刻を処理終了時に表示

$ start_time=`date`
$ ## 時間のかかる(複数の)処理
$ echo ${start_time} -- `date` #=> Mon Aug 24 12:00:00 JST 2009 -- Mon Aug 24 13:00:00 JST 2009

引数のチェック

if [ $1 ] ; then # $1 が存在すれば
  FOO=$1
else
  echo ARGV1 is essential
  exit 1
fi
if [ $1 = "aaa" ] || [ $1 = "bbb" ] ; then
  FOO=$1
else
  echo ARGV1 must be "aaa" or "bbb"
  exit 1
fi

ワンライナー + while

$ while true ; do tail foo.log ; sleep 10 ; done

整数の演算、桁の整形

引数に整数を受け取り、1を加算し、0 でパディングして 4桁にする。
x=`printf %04d $(($1+1))`
echo $x

コマンドの終了ステータスで処理分岐

#!/usr/bin/ksh

ls xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ## 終了ステータスを返すコマンド
status=$?

if [ $status = 0 ] ; then
  echo $status OK
else
  echo $status NG
fi
2009/01/06

Access 2003: テキストファイルインポート時に「オブジェクト'C:\foo.csv.txt' が見つかりませんでした。」とエラーが表示されインポートできない(解決)

メニューから「ファイル」「外部データの取り込み」「インポート」で テキストファイルをインポートしようとした時に
オブジェクト'C:\foo.csv.txt' が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。
というエラーが表示され、インポートに失敗する。

拡張子が「.csv.txt」になっているのがいけないらしく、 単に「.txt」とするとインポートできた。

2008/12/24

DB2: ロード・ペンディング

データ移動ユーティリティ site:ibm.com - Google 検索

ロード・ペンディング状態にあるかどうか確認

$ load query table <ロード対象のテーブル名>
SQL3532I  ロード・ユーティリティーは現在 "LOAD" フェーズです。


読み込まれた行数        = 0
スキップされた行数      = 0
ロードされた行数        = 0
拒否された行数          = 0
削除された行数          = 0
コミットされた行数      = 0
警告の数                = 0

表の状態:
  ロード・ペンディング
$
$ LANG=C db2 load query table <ロード対象のテーブル名>
SQL3532I  ロード・ユーティリティーは現在 "LOAD" フェーズです。


Number of rows read         = 0
Number of rows skipped      = 0
Number of rows loaded       = 0
Number of rows rejected     = 0
Number of rows deleted      = 0
Number of rows committed    = 0
Number of warnings          = 0

Tablestate:
  Load Pending
$
2008/12/11

Javascriptメモ

greasemonkey実行時のエラーをFirebugで捕捉する

Firebugの「コンソール」タブ右側の「オプション」から 「Chrome のエラーを表示」 にチェックを入れる。

aa 内の子要素として bb を挿入

// 末尾に
aa.insertBefore( bb, null );
// 先頭に
aa.insertBefore( bb, aa.firstChild );

正規表現

// 基本
str.match( /~/ );

// マッチした場合に処理
if( str.match( /~/ ) ){
  // マッチした場合の処理
}

// 括弧で参照
str.match( /(..)(...)/ );
foo = RegExp.$1;
bar = RegExp.$2;

イベントドリブンな処理

// 関数を作成
var foo = function (){
  ;
}
// イベントに対応付け
window.addEventListener( "load", foo, true );
参考: 第6回 イベントハンドラから脱却しよう:ITpro
2008/11/18

DB2メモ

表スペースに含まれるコンテナをリストアップ

list tablespace containers for <表スペースID>

# 詳細表示
list tablespace containers for <表スペースID> show detail

RID

→レコードID

擬似空白ページ

DB2 UDB V8.1 タイプ2索引<第1.0版2004年3月> p15 http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/ec7481a5abd4ed3149256f9400478d7d/4925722f004efd2b49256f700015e882/$FILE/type2index.pdf

ヒープ関係の設定を確認

GET DB CFG FOR msadb SHOW DETAIL | grep -i heap
→ データベース・ヒープ / ユーティリティー・ヒープ・サイズ / アプリケーション・グループ・ヒープのメンバーのパーセント / アプリケーションの最大制御ヒープ・サイズ / 共有ヒープのソート・ヒープしきい値 / ソート・リスト・ヒープ / SQL ステートメント・ヒープ / デフォルト・アプリケーション・ヒープ / 統計ヒープ・サイズ

ソート・オーバーフローが起こっていないか確認

$ db2 get snapshot for database on <データベース名> | grep ソート・オーバーフロー
ソート・オーバーフロー                                    = 1
→ ソート・オーバーフローが起こっている。
参考: ソフトウェア | DB2 UDB V8.2.3において、SQLにSQL0901Nエラーが返される問題への対応 (DM-05-034)
2008/10/08

DB2: SQL0289N が出た場合のメモ

SQL0289N  表スペース "USERSPACE1" の新規ページを割り振れません。 
SQLSTATE=57011

表スペースとコンテナの関係

@IT:DB2のデータベース・オブジェクトと物理設計(1/2)

表スペースの一覧表示

list tablespaces 表スペースID、表スペース名、タイプ(DMS/SMS)、内容、状態(再配置中など)を表示する

表スペースの詳細 / 表スペースがSMSとDMSのどちらか確認 / コンテナの空き容量を確認

list tablespaces show detail 表スペース ID、名前(表スペース名)、 タイプ(DMS/SMS)、内容、状態、詳しい説明、 合計ページ数、使用可能ページ数、使用したページ、空きページ、 最高水準点 (ページ)、ページ・サイズ (バイト)、エクステント・サイズ (ページ)、 プリフェッチ・サイズ (ページ)、コンテナー数 を表示。

表スペース・コンテナの状態

get health snapshot for tablespaces on <データベース名> show detail コンテナがいっぱいになっていないかなど、異常を見る。

コンテナ操作

コンテナを表スペースに追加(ファイルの場合) alter tablespace <表スペース名> add ( FILE '<ファイルのパス>' <ページ数> ) コンテナのサイズを変更(ファイルの場合) alter tablespace <表スペース名> resize ( FILE '<ファイルのパス>' <変更後のページ数> ) 表スペースからコンテナを削除 alter tablespace <表スペース名> drop ( FILE '<ファイルのパス>' ) コンテナとしてファイルを使用する場合、通常の rm コマンドでの削除などは行わず、 DB2 のコマンドを介して操作する。 変更を行った後、自動的に再配置される。再配置が終わったかどうかは list tablespaces などで確認できる。
2008/09/30