GDRとQFEとは?

QFEとはQuick Fix Engineeringの略で、元々は修正プログラムを作成するマイクロソフトのチームの名前だったそうですが、今では「応急的な修正プログラム」を指します。
特定のバグを修正するプログラムなので、一般に配布されることはあまりない。サポートセンターに問い合わせして入手するのが一般的です。

GDRとはGeneral Distribution Releaseの略で、広範囲にわたって重要な問題を解決する一般的なソフトウェア更新プログラムの事を指します。


製品のバージョンがQFEであったとしても、SP(サービスパック)を適用した段階で、GDR版となります。

Leave a Comment

10月のマイクロソフトセキュリティパッチ ? SQL Server用のパッチがありそう・・・

今週は10月分のパッチが公開される週ですね。システム管理者が頭を悩ます時期になってきました。今回はSQL Serverのパッチが公開されるとか。水曜日(アメリカの火曜日)にならないと詳細がわからないが、データベース管理者はSQL Server用のパッチを適用する準備をする必要がありますね。

Leave a Comment

jvim ファイルを開く時、文字コードを明示する方法

jvimでファイルを開いたら、文字化けしていた。どうやらファイルの文字コードはUTF-8らしい。そういう時はjvimでそのファイルを開く時に、文字コードを明示するとよい。


# jvim -k t fimename.txt


-kの後に文字コードを表すアルファベットを入力する。


UTF-8: t
SJIS: s
EUC: e


これで文字化けしていたファイルも開けた。

Leave a Comment

ISOイメージをマウントする方法 – ループバックデバイス(Loopデバイス)とは?

カーネル2.4以降なら、ISOイメージをファイルシステムのようにマウントする事ができます

# mount -t iso9660 -o loop "iso file name" "mount point"

のようにコマンドを入力します。


-t: ファイルシステムの種類を選択します。
-o: オプション
loop: ループバックデバイス
iso file name: ISOファイルの名前(パス)を入力します。
mount point: マウントポイントは事前に作成しておく必要があります。
※ループバックデバイスとは、任意のファイルを、ファイルシステムのようにマウントができる機能の事を言います。


本来なら下記のように記述する必要があります。

# mount -t iso9660 -o loop=/dev/loopX "iso file name" "mount point"


/dev/loopXのXには1?7の未使用の番号が入ります。ループバックデバイスが使用可能かどうかを調べるには、次のようにコマンドを入力します。

# cat /proc/device

もし、-o loopのみの場合はmountは使用されていないloopデバイスを探して使用します。

Leave a Comment

Officeのパッチのインストール時にCDを要求される理由

Officeのパッチをインストールする時に、OfficeのCDを要求される場合がある。なので、その場にOfficeのCDがないと、パッチのインストールが失敗してしまう。

インストール時にCDを要求される理由は、Windows Installerの仕様で、ファイルの整合性を確認したり、依存性の確認を行う為に、CDのデータを参照するのが原因である。

会社のPCなどは、マスタイメージを作成してそれを複数のPCにイメージコピーして作成されている。この場合でも、Officeのパッチをインストールする際に、OfficeのCDを要求されてしまう。ユーザ1人1人にOfficeのCDを持たせるわけにもいかないので、対応としては、OfficeのCDを要求されないようにしなければならない。

対応方法の1つとして、OfficeのCDのデータをサーバ上に保存して、クライアントPCのWindows Installerの参照先が設定されているレジストリ値を、そのサーバに設定すれば良い。

ただし、レジストリを変更するのにはリスクが伴うので、必ずバックアップを行って、検証しよう。

Leave a Comment

α版、β版、RC版そしてRTM版

OSのバージョンで、RC版やRTM版というのを見かける時がありますよね。OSのバージョンに限らず、ソフトウェアのバージョンでは、以下の通りに試作品から製品版に移行していきます。

α版: 製品の起草

β版: 概要の組み立て

RC版: 出荷候補版(Release Candicate)

RTM版:RC版をテストして、あらゆる問題点を取り除いた製品版(Release To Manufacturing)

SP: Service Pack

Leave a Comment

【SQL算術関数】EXP ? 指数値を求める (Oracle、SQL Server)

OracleやSQL Serverで指数値を求めるには、EXP関数を使います。

EXP(n)

eのn乗を計算する。eとはネイピア数の事を言い、e=2.71828…である。



使用例:x列の指数値を求める

SELECT x, EXP(x) FROM tbTestTable;

x    EXP(x)
—————————————–
-1.5   0.22313016014843
-0.5   0.606530659712633
0                1
0.5   1.64872127070013
1 2.  71828182845905
1.5   4.48168907033806



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】POWER ? べき乗を求める (Oracle、SQL Server)

OracleやSQL Serverでnのm乗のようなべき乗を求めるには、POWER関数を使います。



文法:

POWER(n, m)

nのm乗をした数値を返す。

使用例:xのy乗を求める

SELECT x, y, POWER(x, y) FROM tbTestTable;

x   y    POWER(x, y)
——————————————–
3   2    9
4   6    4096
-3   2    9



SQLコマンド辞典に戻る

Leave a Comment

【SQL算術関数】MOD ? 余剰(余り)を計算する (Oracle)

Oracleでは、MOD関数を使って割り算の余剰を計算することができます。



文法:

MOD(n, m)

nをmで割った時の余りを求める。

使用例:x/yの余りを求める

SELECT x, y, MOD(x, y) FROM tbTestTable;

x   y   MOD(x, y)
———————————-
12  4   0
12  5   2
12  7   5



SQLコマンド辞典に戻る

Leave a Comment

【SQL変換関数】TO_NUMBER ? 文字列を数値に変換する (Oracle)

OracleではTO_NUMBER関数を使って文字列を数値に変換することができます。



文法:

TO_NUMBER(value [, format] )

valueに指定した文字列をformatに従って変換する



使用例:文字列を数値に変換する。

SELECT value, TO_NUBER(value, ‘999,999′) FROM tbTestTable;

value        TO_NUMBER(value, ‘999,999.999′)
—————————————————————————–
333         333
21,000       21000
3,311.301     3311.301



SQLコマンド辞典に戻る

Leave a Comment

【SQL変換関数】TO_DATE ? 日付値に変換する (Oracle)

Oracleでは、TO_DATE関数を使って、文字列もしくは数値を日付値に変換することができます。


文法:

TO_DATE(value [, format] )

valueに指定した文字列もしくは数値をformatに従って日付値に変換する。



使用例:文字列から日付値に変換する

SELECT d, TO_DATE(d, ‘RRMMDD’) FROM tbTestTable;

d        TO_DATE(d, ‘RRMMDD’)
——————————————————–
20090928   09-09-28
790722     79-07-22



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】NEXT_DAY ? 指定した曜日が次に来る日付を求める (Oracle)

OracleではNEXT_DAY関数を利用して、指定した曜日が次に来る日付を求める事ができます。



文法:

NEXT_DAY(date, week)

dateから見てweekで指定した曜日が来る次の日付を求める。



使用例:date列の日付から見て、次の土曜日の日付を求める。

SELECT date, NEXT_DAY(date, ‘土曜日’) FROM tbTestTable;

date        NEXT_DAY(date, ‘土曜日’)
—————————————————–
09-09-22     09-09-26
79-02-21     79-02-24



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】ADD_MONTHS ? 日付に月を加算する (Oracle)

Oracleでは、ADD_MONTHSを使って日付に月を加算する事ができます。注意点として、2009/09/30のように月末の日付に月を加算すると、その月の月末を計算します。例えば、2009/09/30に1月加算すると、2009/10/31となります。また、2010/01/31に1月加算すると、2010/02/28となります。



文法:

ADD_MONTHS(date, n)

dateに指定した日付にnヶ月を加算する。



使用例:今日の日付の3ヶ月後の日付を取得する。

SELECT sysdate, ADD_MONTHS(sysdate, 3) FROM DUAL;

sysdate     ADD_MONTHS(sysdate, 3)
—————————————————————————
09-09-24     09-10-24



使用例:今日の日付の3カ月前の日付を取得する。

SELECT sysdate, ADD_MONTHS(sysdate, -3) FROM DUAL;

sysdate     ADD_MONTHS(sysdate, -3)
—————————————————————————
09-09-24     09-06-24



使用例:2009/09/30に1月加算する。

SELECT ADD_MONTHS(’2009/09/30′, 1) FROM DUAL;

ADD_MONTHS(’2009/09/30′, 1)
———————————————-
2009/10/31



SQLコマンド辞典に戻る

Leave a Comment

【アプリケーションログ】レジストリ ファイルは他のアプリケーションまたはサービスで使用されています。ファイルはすぐにアンロードされます。レジストリ ファイルを保持しているアプリケーションまたはサービスはこれ以降正しく機能しない可能性があります。

Windows Vistaで以下のような警告ログが表示されていた。起動するたびに表示されているようだ。

レジストリ ファイルは他のアプリケーションまたはサービスで使用されています。ファイルはすぐにアンロードされます。レジストリ ファイルを保持しているアプリケーションまたはサービスはこれ以降正しく機能しない可能性があります

以下のマイクロソフト社のサイトによると、Vista固有の問題で、特に心配する必要はないそうだ。
http://support.microsoft.com/kb/947238/en-us

Leave a Comment

【SQL算術関数】LEAST ? 引数の中から最小値を返す (Oracle)

Oracleでは、複数の引数の中から最小値を返すにはLEAST関数を使います。逆に複数の引数の中から最大値を返すにはGREATEST関数を使います。

文法:

LEAST(a, b [, c, .....] )


使用例:英語、数学、物理のテストの点数から最小点を求める。

SELECT user, english, math, physics, LEAST(english, math, physics) FROM tbExamTable;

user     english  math  physics  LEAST(english, math, physics)
——————————————————————————————————
Yamada   56     33    79     33
Kawai     80     67    46     46



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】LAST_DAY ? 月の最終日付を取得する (Oracle)

Oracleでは、LAST_DAY関数を利用して月の最終日を取得する事ができます。閏年にも対応していますね。



使用例:月の最終日付を取得する。

SELECT date, LAST_DAY(date) FROM tbTestTable;

date         LAST_DAY(date)
———————————————————–
2009-09-16     2009-09-30
2009-10-11     2009-10-31
2009-02-22     2009-02-28
2012-02-22     2012-02-29



SQLコマンド辞典に戻る

Leave a Comment

【SQL日付関数】EXTRACT ? 日付から任意の日付要素を取得する (Oracle)

Oracleで、日付値から任意の日付要素(年、月、日など)を取得するにはEXTRACT関数を使います。例えば、EXTRACT関数を使えば、2008-09-22という日付値から、月を取得すると09という値を取得することができます。


文法:

EXTRACT(element FROM date)

dateからelementで指定した日付要素を取得する。



使用例:現在の日付から月を取得する。

SELECT SYSDATE, EXTRACT(month FROM SYSDATE) FROM DUAL;

SYSDATE    EXTRACT(month FROM SYSDATE)
———————————————————————————
09-09-16     09


使用例:現在の日付から日を取得する。

SELECT SYSDATE, EXTRACT(day FROM SYSDATE) FROM DUAL;

SYSDATE    EXTRACT(day FROM SYSDATE)
—————————————————————————–
09-09-16     16


時、分、秒などの日付要素を取得したい場合は、TIMESTAMP型の値の指定が必要です。



使用例:現在の日付から分を取得する。

SELECT CURRENT_TIMESTAMP, EXTRACT(minute FROM CURRENT_TIMESTAMP) FROM DUAL;

CURRENT_TIMESTAMP            EXRTRACT(minute F………)
———————————————————————————————————
09-09-16 02:15:04.192000000 GMT     15



SQLコマンド辞典に戻る

Leave a Comment

【Oracle】nmefwmi.exeは動作を停止しました

検証のためにWindows VistaにOracle Database 11g(11.1.0.6.0)をインストールしたが、「nmefwmi.exeは動作を停止しました」というエラーが5分置きに表示される。Vistaのアプリケーションログをみると、以下のようなエラーが記録されていた。


障害が発生しているアプリケーション nmefwmi.exe、バージョン 0.0.0.0、タイム スタンプ 0×46e8bfeb、障害が発生しているモジュール RPCRT4.dll、バージョン 6.0.6002.18024、タイム スタンプ 0×49f05bcc、例外コード 0xc0000005、障害オフセット 0×00077328、 プロセス ID 0×1874、アプリケーションの開始時刻 0×01ca3656fa5d2af5。

nmefwmi.exeはOracle Enterprise Managerに関連するプロセスなので、データベースには直接影響がなさそうである。しかもOracle Enterprise Managerは正常に稼働しているようにも思えるし、実際にOracle Enterprise Managerを利用していても特に問題は起こっていない。よって、nmefwmi.exeのクラッシュは無視しても問題なさそうだが、5分に1度くらいのペースでエラーメッセージが表示されるのは避けたいものである。

OTN Discussion Forumでは、11g and Vistaというタイトルで上記のnmefwmi.exeに関するエラーについてのディスカッションが行われているが、どうも次期バージョン(11.1.0.7もしくは11.2?)を待つしかなさそうである。

Leave a Comment

【Vista】Event ID 10がログに表示される WMIのエラー?

Windows Vistaのアプリケーションログに以下のようなWMIのエラーが表示されていた。過去ログをみると、毎回起動後に表示されているようだ。


クエリ “SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA “Win32_Processor” AND TargetInstance.LoadPercentage > 99″ のイベント フィルタを名前空間 “//./root/CIMV2″ 内で再度使用できませんでした。原因はエラー 0×80041003 です。問題が解決されなければ、このフィルタではイベント表示できません。

WMIフィルターが十分な権限なしでアクセスしているのが原因のようだ。対応方法はマイクロソフト社のHPに記載されている。下記のスクリプトを実行すれば、エラーログが表示されなくなるそうだ。下記スクリプトをテキストにコピペして、拡張子をvbsとして保存し、実行すると解決する。

http://support.microsoft.com/kb/950375/en-us/

strComputer = “.”
Set objWMIService = GetObject(”winmgmts:” _
& “{impersonationLevel=impersonate}!\\” _
& strComputer & “\root\subscription”)

Set obj1 = objWMIService.Get(”__EventFilter.Name=’BVTFilter’”)

set obj2set = obj1.Associators_(”__FilterToConsumerBinding”)

set obj3set = obj1.References_(”__FilterToConsumerBinding”)

For each obj2 in obj2set
WScript.echo “Deleting the object”
WScript.echo obj2.GetObjectText_
obj2.Delete_
next

For each obj3 in obj3set
WScript.echo “Deleting the object”
WScript.echo obj3.GetObjectText_
obj3.Delete_
next

WScript.echo “Deleting the object”
WScript.echo obj1.GetObjectText_
obj1.Delete_

参考資料:
http://forums.techarena.in/vista-help/974098.htm
http://www.msfn.org/board/heres-fix-wmi-event-id-10-instancemodificationeven-t114389.html

Leave a Comment

【SQL日付関数】MONTHS_BETWEEN ? 日付の差を月単位で取得する (Oracle)

Oracleで2つの日付の差を月単位で取得するには、MONTHS_BETWEEN関数を取得する。注意点はMONTH_BETWEENではなく、MONTHS_BETWEENというようにMONTHが複数形であること。また、使用例の3列目の例のように月だけをみると2か月の差ですが、日付をみると、25‐5で20日間、つまり、20÷31=0.64516129月分の差がありますので、09-05-25と09-03-05の月の差は2.64516129ヶ月分の差がある事になります。



文法:

MONTHS_BETWEEN(date1, date2)

date1からdate2を引く形で月の差を求める。



使用例:日付の差を月単位で求める。

SELECT date1, date2, MONTHS_BETWEEN(date1, date2) FROM tbTestTable;

date1     date2      MONTHS_BETWEEN(date1, date2)
———————————————————————————-
09-09-03   09-04-03     5
09-05-25   09-07-25     -2
09-05-25   09-03-05     2.64516129



SQLコマンド辞典に戻る

Leave a Comment

Switch to our mobile site