一定期間更新がないため広告を表示しています
2019.01.01 Tuesday
- | | - | -
2009.03.28 Saturday
JUGEMテーマ:コンピュータ
きっかけは
とあるテーブルのとある名前フィールドで
苗字と名前の間に半角スペースが入っているデータは
全角スペースに変換してほしい、という依頼から。
『Likeで半角スペースを検索して、Replace()で置換すればいい』と、思ってたら
Like = '% %'
で全角スペースもヒットするのね。。。
知らんかったorz
であれば正規表現でマッチングさせるしかないので
SQL-CLRで作成してみた。
--------------------------------------------------------------
[Regexクラス(C#)]
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions;
///
/// ユーザ定義関数に追加
///
public static partial class UserDefinedFUnctions
{
public static readonly RegexOptions Options =
RegexOptions.IgnorePatternWhitespace |
RegexOptions.Singleline;
///
/// 正規表現Matchメソッド
///
/// 文字列
/// パターン
///
[SqlFunction]
public static SqlBoolean RegexMatch(
SqlChars input, SqlString pattern)
{
Regex regex = new Regex(pattern.Value, Options);
return regex.IsMatch(new string(input.Value));
}
///
/// 正規表現Replaceメソッド
///
/// 文字列
/// パターン
/// 置換パターン
///
[SqlFunction]
public static SqlString RegexReplace(
SqlChars input, SqlString pattern1, SqlString pattern2)
{
Regex regex = new Regex(pattern1.Value, Options);
return regex.Replace(new string(input.Value), pattern2.Value);
}
};
--------------------------------------------------------------
[SQL]
UPDATE FROM MstXXX
SET XXXXName =
dbo.RegexReplace
(
XXXXName
, N'(?
, N'${FirstName} ${LastName}'
)
WHERE dbo.RegexMatch
(
XXXXName
, N'^[^¥x20]*[¥x20]{1}[^¥x20]*$'
) = 1;
--------------------------------------------------------------
けっこういいカンジ(^_^)
2009.03.20 Friday
JUGEMテーマ:趣味
そうなんですよね〜
真面目に子育てしなくても
子供は育っていくんですよ。
無理にアレもコレもしなきゃなんて思ってても
子供は相手じゃなかなかうまくいかないし
いい加減にやった方がお互いストレスも溜まらないしね。
せっかくの子育て、楽しんでやらなきゃもったいない♪
うちの子ももうスグ1歳!
早く『おとしゃん』て言ってくれないかな〜(^〜^)
一緒に並んでお散歩したいな〜(^〜^)
やべっ!ついニヤニヤしちゃった♪
2009.03.18 Wednesday
評価:
マーカス バッキンガム 日本経済新聞社 ¥ 1,995 (2006-01)
Amazonランキング:
703位
|
JUGEMテーマ:趣味
全然ひとつじゃありませんでした(笑)
そりゃそうでしょうけどね、
ひとつだけず〜っと考えられても部下にはいい迷惑ですから。
リーダーとマネージャーは役割が違うので
考え方の重心も変わってくるとのこと。
書いてあることを実践するには
自分の強みを生かして
もっと余裕を持って仕事しないとダメみたいです。
2009.03.17 Tuesday
JUGEMテーマ:日記・一般
今日、来期年棒の交渉中に発覚したんですが、
ヒラからリーダーに昇格したらしいです。
リーダー手当てが来期より3千円支給されるとのこと。
私、『で、リーダーになったら何か業務が変わるんですか?』
上司、『いや、特に』
だそうですf(^^;)
ま、もらえるもんはもらっとくスタンスなので
謹んでお受け致しました。
帰って嫁との話
私、『昇格して3千円給料上がるって♪』
嫁、『来月から借り替える駐車場が3千円高いからぴったりやね♪』
私、『差引きゼロ?』
嫁、『ゼロ♪』
よくできた話です。
2009.03.17 Tuesday
MS DTC(分散トランザクションコーディネータ)を使用したアプリケーションが
異常終了(もしくは強制終了)した際に
SQL-Server内にプロセスID=-2でロックが残ってしまう場合があります。
(sp_lockで確認)
通常のロックであれば
KILL プロセスID
ステートメントで強制的にプロセスを終了させロックを解除できますが
KILL -2
としてもエラーとなり強制解除ができません。
このプロセスID=-2 は孤立したMS DTCのトランザクションであり、
MS DTC側の作業IDからプロセスを終了しロックを解除する必要があります。
[強制解除手順]
1.MS DTCの作業IDを取得します。
SELECT DISTINCT req_transactionUOW
FROM sys.syslockinfo
WHERE req_spid = -2;
2.1で取得した作業IDからプロセスを強制終了させます。
KILL '00000000-0000-0000-0000-000000000000'(←作業ID)
以上
異常終了(もしくは強制終了)した際に
SQL-Server内にプロセスID=-2でロックが残ってしまう場合があります。
(sp_lockで確認)
通常のロックであれば
KILL プロセスID
ステートメントで強制的にプロセスを終了させロックを解除できますが
KILL -2
としてもエラーとなり強制解除ができません。
このプロセスID=-2 は孤立したMS DTCのトランザクションであり、
MS DTC側の作業IDからプロセスを終了しロックを解除する必要があります。
[強制解除手順]
1.MS DTCの作業IDを取得します。
SELECT DISTINCT req_transactionUOW
FROM sys.syslockinfo
WHERE req_spid = -2;
2.1で取得した作業IDからプロセスを強制終了させます。
KILL '00000000-0000-0000-0000-000000000000'(←作業ID)
以上