トップページに戻る
わくすたブログ
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月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年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年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オブジェクト権限も必要です。
●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月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年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月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年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月22日(火)
Oracle12cのselect文の新機能のMatch_Recognize句についてコンテンツを作成する。
1 基本的な使用例
2 旅人算のシンプルケース
3 旅人算のComplexケース
4 旅人算のライバルソリューション
5 15分以上の差があったら表示する階層問い合わせのもの
マニュアル --- パターン一致用SQL
●2014年1月25日(土)
C++のサンプル集
鋭意製作中
C++でのプロジェクトオイラーは、C#と比べて難易度が高いですね。
●2014年1月29日(水)
STLが楽しいので買ってきた。
STL標準講座
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