トップページに戻る    わくすたブログ    DSP受験記    記事(OTN)    記事(CodeZine)    MSDN C#    @IT C#入門
2006年 2月16日から2007年 7月28日までのブログ
2007年 8月 1日から2007年10月28日までのブログ
2007年10月20日から2008年 5月 8日までのブログ
2008年 5月22日から2008年 9月 3日までのブログ
2008年 9月 4日から2009年 2月 4日までのブログ
2009年 2月 7日から2009年 5月20日までのブログ
2009年 5月22日から2009年 7月13日までのブログ
2009年 7月15日から2009年11月11日までのブログ
2009年11月14日から2010年 3月13日までのブログ
2010年 3月15日から2010年 7月21日までのブログ
2010年 7月24日から2011年 3月29日までのブログ
2011年 3月30日から2012年 1月11日までのブログ
2012年 1月18日から2014年 3月18日までのブログ
2014年 3月21日から2014年11月15日までのブログ
2014年11月22日から2015年 3月 1日までのブログ
2015年 3月15日から2015年 5月30日までのブログ
2015年 6月 7日から2018年 4月24日までのブログ
2018年 7月21日から2021年 2月19日までのブログ
最新のブログ

●2012年1月18日(水)
@IT会議室 --- 図でイメージするOracleのSQL全集 第3回 分析関数を見ながら・・・


●2012年1月24日(火)
OTN --- "analytic functions" can be used at "recursive with clause" or not
OracleのSQLのマニュアルの著者からのreplyによると・・・

再帰with句の再帰項のselect句で分析関数を使うと、
ORA-32486 (再帰的with句の再帰的ブランチでサポートされていない操作です)が発生するのは、
11.2.0.1のバグであり、11.2.0.2で修正されたそうです。


●2012年2月3日(金)
マニュアル --- 短絡評価

PL/SQLのif文のandとorは短絡評価だと初めて知りました。

SQL> declare
  2      function hukusayou(hiki char) return boolean Is
  3      begin
  4          DBMS_Output.Put_Line(hiki);
  5          return true;
  6      end;
  7
  8  begin
  9      if 1=0 and hukusayou('A') then null; end if;
 10      if hukusayou('B') and 1=0 then null; end if;
 11
 12      if 1=1 or hukusayou('C') then null; end if;
 13      if hukusayou('D') or 1=1 then null; end if;
 14  end;
 15  /
B
D

PL/SQLプロシージャが正常に完了しました。


●2012年2月4日(土)
マニュアル --- DBMS_Output

注意:
NUMBERデータ・タイプを使用するPUT_LINEプロシージャは使用されなくなります。
現在はサポートされますが、このリリースに含まれているのは下位互換性を保つという理由にすぎません。

DBMS_OutputのPut_Lineメソッドでは、数値型を引数をするバージョンは定義されてないようですね。


●2012年2月15日(水)
@IT --- SQLServerの分析関数の使用例の「5. 順位を付ける」を見ながら・・・

SQLServerで、partitionを切ってないRow_Number関数の結果が1の行を取得するのであれば、
Top句の使用で、インラインビューを減らせることに気がつかなかったです・・・


●2012年2月16日(木)
正規表現クックブックを再度読んでるのですが

EmEditorでは、\0でマッチした正規表現全体への後方参照ができると知りました。
これを知ってれば、置換対象全体を括弧で括る手間が省けることが増えそうですね。

なお、Oracle11gR2は、\0をサポートしてませんでした。

対象テキスト
abcd

abcd
を
\0---\0
に置換で

abcd---abcd
が置換結果になります。


●2012年3月4日(土)
図でイメージするOracleのSQL全集 第7回 再帰with句


●2012年3月24日(土)
プログラミングコンテストチャレンジブック
絵で見てわかるOS/ストレージ/ネットワーク

裁縫は脳に良いらしいし、ボタンつけを覚える。
イチバン親切なおさいほうの教科書―ボタンつけから

ASP.NETで作って勉強するサイト
・ログイン画面
・マスタメンテ
・掲示板
・ショッピングサイト

C#で作って勉強するオープンソースソフト
・数独を解くゲーム
・オブジェクトブラウザとPL/SQL DeveloperとSQL Developerもどき

JavaScriptの記事
@IT --- 初心者のためのJavaScript入門
@IT --- JavaScriptでできること・できないこと
@IT --- Ajax時代のJavaScriptプログラミング再入門


●2012年4月2日(月)
@IT --- Visual Basic 2005へ移行する理由(中編)
VB6ではフォームの名前は、「クラス名」と「(暗黙の)フォームのインスタンス名」という2つの意味を持っていた。


●2012年6月17日(日)
C#のサンプル集 --- 1-8 リフレクション

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

@IT --- HTMLカラーの色名表記と16進表記を相互に変換するには?
@IT --- 数値を右詰めや0埋めで文字列化するには?

VB中学校 --- 色をあやつる

Color構造体の指定の仕方(変数経由とリテラル経由)

using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        for (int I = 0; I <= 0xFFFFFF; I++) {
            Console.WriteLine("{0}番目の変換   0x{0:X6}", I);
            Color c1 = ColorTranslator.FromHtml(string.Format("0x{0:X6}",I));
        }

        Color c2 = Color.FromArgb(0xFF, 0x25, 0x33);
    }
}


●2012年7月18日(水)
LINQの研究の第1弾 First_Value関数もどき
最終的には、しっかりと各機能をまとめる。

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var arr = new[] {new{ID = 1,SortKey = 1,Val = 3},
                         new{ID = 1,SortKey = 2,Val = 4},
                         new{ID = 1,SortKey = 3,Val = 5},
                         new{ID = 2,SortKey = 1,Val = 6},
                         new{ID = 2,SortKey = 2,Val = 7},
                         new{ID = 2,SortKey = 3,Val = 8},};
        var SQL = arr.GroupBy(A => A.ID)
                     .Select(B => new
                     {
                         B.Key,
                         FirstVal = B.OrderByDescending(C => C.SortKey).First().Val
                     });

        foreach (var each in SQL) {
            System.Console.WriteLine(each);
        }
    }
}
//出力結果
//{ Key = 1, FirstVal = 5 }
//{ Key = 2, FirstVal = 8 }


●2012年7月22日(日)
旅人算メソッドは、銀の弾丸ではないという例
OracleSQLパズル 10-350 担当した期間をまとめる


●2012年7月25日(水)
正規表現パズル 9-10 OO4O仕様で整数部が0の小数の整数部の0を削除


●2012年8月4日(土)
C#メモ --- オブジェクトのシリアライズ
C#のサンプル集 --- 6-3 Where拡張メソッド
OracleSQLパズル 3-43 更新可能なインラインビューでのwith句


●2012年8月10日(金)
ほとんど使わない外部ツールである "プロジェクトディレクトリ"を削除し、
新しく"EmGrep"を配置する。



●2012年8月26日(日)
MSDN --- C#における静的ローカル変数の代用品

VB2005のStaticなローカル変数のスコープは、インスタンスごと
VC++2005のStaticなローカル変数のスコープは、クラスごと

C#のクラスのstaticなメンバ変数のスコープは、クラスごと
VB.NETのクラスのSharedなメンバ変数のスコープは、クラスごと


●2012年8月27日(月)
VisualStudioにバンドルされているildasmで逆アセンブルする方法

スタート →
プログラム →
Microsoft Visual Studio 2005 →
Visual Studio Tools →
Visual Studio 2005 コマンド プロンプト


■■■GUIで逆アセンブルした結果を見たい場合
ildasm "逆アセンブルしたいexeのフルパス"

例
ildasm C:\CSharpApplication.exe

■■■テキストファイルで逆アセンブルした結果を見たい場合
ildasm "逆アセンブルしたいexeのフルパス" /out="逆アセンブル結果のテキストファイルのフルパス"

例
ildasm C:\CSharpApplication.exe  /out=C:\CSharpApplication.txt


●2012年9月28日(金)
merge文で必要なオブジェクト権限

Oracle SQL言語リファレンス --- MERGE

対象となる表に対するINSERTオブジェクト権限とUPDATEオブジェクト権限、
およびソース表に対するSELECTオブジェクト権限が必要です。

merge_update_clauseのDELETE句を指定するには、
対象となる表に対するDELETEオブジェクト権限も必要です。


●2012年10月11日(木)
C#のサンプル集 --- 8-19 箱入り娘
久々にC#で、アルゴリズム問題を解いてみた。


●2012年11月3日(土)
Oracle ACE Alumnusとは何でしょうか。
Alumnusなんてステータスが出来てる。


●2012年12月14日(金)
図でイメージするOracleのSQL全集 第8回 PivotとUnPivot


●2013年1月31日(木)
久しぶりにOTNに登場してみた。
OTNJ --- 式のリストの比較を駆使してみました :-)


●2013年3月31日(日)
C#のサンプル集を更新してみた。
Problem92 各桁の2乗を足し合わせた数の鎖
Problem112 活発な数の割合が99%ちょうどになる最小の数
Problem125 回文数となる平方数の和
Problem145 10億未満に存在するreversibleな数
Problem191 賞を貰える文字列
Problem345 行列計を求める


●2013年4月27日(土)
US-OTN --- SQL Challenge
久しぶりに旅人算メソッドが登場 :-)


●2013年5月5日(日)
C#メモ --- ラムダ式の変数キャプチャ機能に関する実験
ラムダ式の変数キャプチャ機能で
キャプチャした変数は、参照渡しのようです。

using System;

class Program
{
    static void Main()
    {
        int I = 0;
        Action act = () => I++;
        act();
        act();
        act();
        Console.WriteLine("I={0}", I); //I=3
    }
}


●2013年5月11日(土)
C#で解いたプロジェクトオイラーを
OracleのPL/SQLで10問ほど解いてみた。

Problem1 1000未満の3か5の倍数の自然数の合計
Problem2 フィボナッチ数列の偶数の項の総和
Problem3 600851475143の最大の素因数
Problem4 3桁の数の積で表される回文数のうち最大のもの
Problem5 1から20までの整数全てで割り切れる最小の値
Problem6 最初の100個の自然数の、和の2乗と2乗の和の差
Problem7 10001番目の素数
Problem8 5つの連続する数字の積の最大値
Problem9 a+b+c=1000となるピタゴラス数
Problem10 200万以下の全ての素数の和
Problem11 上下左右斜めの、連続する4つの数字の積
Problem12 501個以上の約数をもつ最初の三角数


●2013年5月23日(木)
WindowsXPで、Excelの読取専用で開くの設定

上記の設定値
"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /h /r /dde "%1"
[open("%1",,True,,,,,,,,,,,,1,,1)]

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Windows7の場合は、
HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\OpenAsReadOnly\ddeexec
HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\ddeexec

を
[open("%1",,1,,,,,,,,,,,,1,,1)]
に設定


●2013年5月27日(月)
C#のサンプル集を更新してみた。
Problem43 独特な部分列被整除性を持つPandigital数

Problem60 任意の2つの素数を繋げても素数な、5つの素数の組
Problem114 ブロックを離して一列に敷き詰める方法の数
Problem172 桁の繰り返しが少ない数
Problem231 二項係数の素因数分解
Problem240 上位のサイコロ
も、頃合を見て解きたいが、
力任せでは、24時間以上かかると思われるため、数学を使うので大変そうだ・・・


●2013年6月3日(月)
列名をコメント付きで列挙

set head on
col COLUMN_NAME for a30
col COMMENTS for a50
set pages 1000

select COLUMN_NAME,
(select b.COMMENTS
   from USER_COL_COMMENTS b
  where b.TABLE_NAME = a.TABLE_NAME
    and b.COLUMN_NAME = a.COLUMN_NAME) as COMMENTS
  from USER_TAB_COLUMNS a
 where TABLE_NAME = 'テーブル名'
order by COLUMN_ID;


●2013年6月6日(木)
C#のサンプル集 8-20 同じところを2度通らない道順の数

    Action<int, int> WillAct = (pX, pY) =>
    {
        string wk = string.Format("({0},{1})", pX, pY);
        if (Popped.Path.Contains(wk) == false) {
            WillPush.X = pX; WillPush.Y = pY;
            WillPush.Path = Popped.Path + wk;
            stk.Push(WillPush);
        }
    };

    //右に移動
    if (Popped.X < MaxHaba) WillAct(Popped.X + 1, Popped.Y);
    //左に移動
    if (Popped.X > 0) WillAct(Popped.X - 1, Popped.Y);
    //上に移動
    if (Popped.Y < MaxHaba) WillAct(Popped.X, Popped.Y + 1);
    //下に移動
    if (Popped.Y > 0) WillAct(Popped.X, Popped.Y - 1);

ローカル変数のActionデリゲートでサブルーチンを定義して、
複数回使用するのは、便利だと気付きました。

メソッドを作った場合は、変数を渡す必要があるのに対して、
ラムダ式だと上位の変数のキャプチャ機能もありますし


●2013年6月19日(水)
使えるクラシック風アイコンのパス
%SystemRoot%\system32\progman.exe
%SystemRoot%\system32\moricons.dll
%SystemRoot%\msagent\agentdpv.dll


●2013年6月29日(土)
オラクルコンサルが語る!SQLチューニングの真髄


●2013年7月1日(月)
Changes in This Release for Oracle Database SQL Language Reference
Oracle12cでのSQL(Select文)の新機能が紹介されてますね。

■with句でPL/SQLでファンクション定義とか

■select文でのOffSetとFetchをサポート
select *
  from テーブル名
order by ソートキー
OffSet オフしたい行数
Fetch First 取得したい行数

が気になります。日本語版のマニュアルが公開されたらじっくり読みたい。
Oracle Databaseドキュメント


●2013年7月13日(土)
マニュアル --- PL/SQLブロックの実行
SQL*Plusでは、SQLコマンドと同じ方法でPL/SQLサブプログラムを処理できますが、
セミコロン(;)または空白行でブロックを終了および実行できません。
PL/SQLサブプログラムを終了するには、
新しい行にピリオド(.)のみを入力します。
新しい行にスラッシュ(/)のみを入力しても終了および実行が可能です。

SQLPlusで
/でPL/SQLを実行できるのは知ってましたが、
.でPL/SQLを実行せずにPL/SQLブロックを終了できるのは、知りませんでした。
以下、実験結果です。

Oracle Database 11g Release 11.2.0.1.0 - Production
に接続されました。
SQL> begin
  2      DBMS_Output.Put_Line('Test1 /');
  3  end;
  4  /
Test1 /

PL/SQLプロシージャが正常に完了しました。

SQL>
SQL> begin
  2      DBMS_Output.Put_Line('Test2 .');
  3  end;
  4  .
SQL>
SQL> begin
  2      DBMS_Output.Put_Line('Test3 /');
  3  end;
  4  /
Test3 /

PL/SQLプロシージャが正常に完了しました。

SQL>


●2013年7月21日(日)
--■■■Oracle12cの調査用SQLその1■■■
create table Test12C as select RowNum as ID from dict where RowNum <= 100;

select mod(ID,2),count(*),count(*) over() as cnt
  from Test12C
group by mod(ID,2)
fetch first 2 rows only;

select ID,count(*) over()
  from Test12C
 where RowNum <= 10
fetch first 5 rows only;

select ID,count(*) over()
  from Test12C
 where RowNum <= 10
order by ID desc
offset 5 rows
fetch next 5 rows only;

--■■■Oracle12cの調査用SQLその2■■■
select 1 as Val from dual
union all
(select 2 as Val from dual
 intersect
 select 3 as Val from dual);

select 1 as Val from dual
union all
select 2 as Val from dual
intersect
select 3 as Val from dual;

--■■■Oracle12cの調査用SQLその3■■■
select 1 as Val from dual
minus all
select 2 as Val from dual;

select 1 as Val from dual
intersect all
select 2 as Val from dual;

--■■■Oracle12cの調査用SQLその4■■■
create table TestTable(ID,DateCol) as
select 1,date '2011-11-11' from dual union all
select 2,date '2012-07-13' from dual union all
select 3,date '2030-12-31' from dual;

-- FirstSQL
SELECT *
  FROM TestTable
 WHERE sysdate <= DateCol
    OR DateCol = date '2011-11-11';

-- SecondSQL
SELECT *
  FROM TestTable
 WHERE DateCol = date '2011-11-11'
    OR sysdate <= DateCol;

--■■■Oracle12cの調査用SQLその5■■■
OTN --- Report of bugs like results of SQL in Oracle11gXE.
OTN --- "analytic functions" can be used at "recursive with clause" or not
これらのSQLもチェックしておきたい


●2013年8月1日(木)
Wikipedia --- モンティ・ホール問題
Wikipedia --- 排他的論理和

排他的論理和の交換法則
A XOR B = B XOR A

排他的論理和の結合法則
(A XOR B) XOR C = A XOR (B XOR C)

A XOR B XOR C XOR D のような、
複数の論理値での排他的論理和は、
Trueの数が奇数個ならTrueとなり
Trueの数が偶数個ならFalseとなる。


●2013年8月2日(金)
勝ち残りSEへの分岐点
買ってきた。


●2013年8月4日(日)
7-3 スレッドビューワ
OTNとMSDNのスレッドビューワをリニューアル対応させてみました。


●2013年9月23日(月) その1
バインド変数の値の埋め方のメモ。
beginとendを使うよりも、
execのほうが、3行(beginとendと/)短くなります。

SQL*Plus ユーザーズ・ガイドおよびリファレンス EXECUTEコマンド
SHIFT the Oracle --- CALL 文 と EXECUTE コマンドの違い

SQL> var BindHensuu Number;
SQL> exec :BindHensuu := 5;

PL/SQLプロシージャが正常に完了しました。

SQL> select :BindHensuu as Val from dual;

VAL
---
  5


●2013年9月23日(月) その2
Yahooのアクセス解析結果から、私のお気に入りコンテンツのアクセス数をメモってみた。
2010年9月にinfoseekからgeocitiesに引越してからの、htmlファイルごとの累計アクセス数です。
C#のサンプル集のアクセス数が多いのが嬉しいです。

OracleSQLパズル 32734アクセス
Oracleの分析関数のサンプル集 26882アクセス
OracleSQLパズル --- 2-1-3 select文の結果を使ってupdate 23284アクセス
OracleSQLパズル --- Oracleとの接続確認 15444アクセス
SQLServerの分析関数の使用例 14688アクセス
PostgreSQLの再帰SQLの使用例 5995アクセス
正規表現パズル 10002アクセス
C#のサンプル集 7328アクセス
ブール代数パズル --- 1-4 ブール代数の計算ドリル 2286アクセス
明智重蔵のブログ 2029アクセス


●2013年10月13日(日)
OTN --- Method to get mod (in PL/SQL)
PL/SQLでVB.NET風の余りを求める構文が使えるけど、
マニュアルにのってないのでは? という話

begin
    DBMS_Output.Put_Line(mod(17,6));
    DBMS_Output.Put_Line(17 mod 6);
end;
/


●2013年10月21日(月)
C#関連
たのしいC#プログラミング --- amazon
たのしいC#プログラミング|サポート|秀和システム
たのしいC#プログラミング 【▲→川俣晶の縁側→技術関連執筆情報】
独習ASP.NET 第3版

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
図でイメージするOracle DatabaseのSQL全集の執筆
 9回 model句
10回 DML文 (最後にDMLのサンプル集を付ける)
11回 詳説正規表現のOracleの章
12回 よく使う関数
13回 Match_Recognize句


●2013年10月22日(火)
Oracle12cのselect文の新機能のMatch_Recognize句についてコンテンツを作成する。
1 基本的な使用例
2 旅人算のシンプルケース
3 旅人算のComplexケース
4 旅人算のライバルソリューション
5 15分以上の差があったら表示する階層問い合わせのもの

マニュアル --- パターン一致用SQL


●2013年11月9日(土)
猫でもわかるプログラミング シリーズ特設サイト
猫でもわかるゲームプログラミング 第2版

シューティングゲーム アルゴリズムマニアックス 新装版
パズルゲームアルゴリズムマニアックス
アクションゲームアルゴリズムマニアックス


●2013年12月4日(水)
買ってきた技術書
続・アルゴリズムを学ぼう

買ってきたC言語関連の技術書
猫でもわかるC言語プログラミング 第3版
猫でもわかるC++プログラミング 第2版
猫でもわかるWindowsプログラミング 第4版
DirectX9実践プログラミング[WindowsXP/Vista/7 対応版]


●2013年12月11日(水)
買ってきた技術書
ITエンジニアのための【業務知識】がわかる本 第3版
たのしいC
森本啓夫の数学Bの教科書[数列・ベクトル]が面白いほどわかる本


●2014年1月25日(土)
C++のサンプル集
鋭意製作中
C++でのプロジェクトオイラーは、C#と比べて難易度が高いですね。


●2014年1月29日(水)
STLが楽しいので買ってきた。
STL標準講座
C++でのプロジェクトオイラー対策です。

C++メモ


●2014年2月22日(土)
実に難しくもあり、面白かった問題
C#のサンプル集 Problem60 任意の2つの素数を繋げても素数な、5つの素数の組

素晴らしい解説サイト
プロジェクトオイラーを遊び倒すガイド(導入編)


●2014年3月8日(土)
消費税増税前に買っておく技術書
総額2万円ぐらいなので、600円お得 :-)

ASP.NETの絵本独習ASP.NET 第4版プロフェッショナルマスター Visual C# 2012 (MSDNプログラミングシリーズ)たのしいC#プログラミング詳説 CポインタC言語 ポインタが理解できない理由実例で学ぶゲーム開発に使える数学・物理学入門


●2014年3月9日(日)
C++の勉強のために、プロジェクトオイラーをC#で再開してましたが、
解いた問題数を集計したら、71問でした。

25問正解するとレベル1になり, 50問でレベル2,75問でレベル3,100問でレベル4
だそうなので、あと4問解きたくなってきたので、解けそうなのをリストアップしてみた。

C#で、一段落したら、C++で解いていきたいと思います。


●2014年3月18日(火)
プロジェクトオイラーの解いた問題数が76問に到達しました。
これでレベル3になりました。


TOEIC   オライリー   翔泳社SHOP   C++のサンプル集   C#のサンプル集   正規表現   SQLServer   JavaScript