トップページに戻る    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日までのブログ
最新のブログ

●2011年3月30日(水)
US-OTN --- How to do cumulative sum for this scenario?
US-OTN --- Please do not forget ListAgg
久々にUS-OTNに復活


●2011年4月2日(土)
Oracle Database 11.2 Express Edition Beta
ベースになってるバージョンが気になりますね。


●2011年4月10日(日)
US-OTN --- In this case,model clause is one way


●2011年4月25日(月)
US-OTN --- Special Report SQL Query
US-OTN --- I like recursive with clause B-)


●2011年4月27日(水)
Visual Basic LINQ講座
読んどく


●2011年5月9日(月)
怒らない技術 (フォレスト2545新書): 嶋津良智
これは、いい本だった。


●2011年5月12日(木)
Oracle11gXEをインストールして実験した結果をレポートしてみた。
Oracle11gR2とSQLエンジンは変わってないようだ。
US-OTN --- Report of bugs like results of SQL in Oracle11gXE.


●2011年5月13日(金)
MSDN --- employees absence (consecutive days and single days)
旅人算メソッドがUS-MSDNに進出 :-)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
10-345 再帰with句で外部結合後のWhere句で枝切り
10-346 再帰with句の再帰項でLeft Join

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
データベース設計を学ぶ本: わく☆すたブログ
実践的データモデリング入門が紹介されてますね。
副読本を探して考えるのも、情報処理技術者試験の楽しみの一つです。


●2011年5月17日(火)
図でイメージするOracle DatabaseのSQL全集 第4回 集約関数などが公開されました。


●2011年5月22日(日)
Oracle Tips and Tricks - Part 3: Tabibitosan
Boneistさんのブログでの旅人算メソッドの紹介

ODTUG Kscope11 - Oracle Development Tools User Group
Alex Nuijtenさんの2011年6月29日に予定されているプレゼンテーションのPDFでも、
旅人算メソッドが紹介されてますね。


●2011年5月27日(金)
US-OTN --- UnPivot is useful :-)
どうも、UnPivotは度忘れすることが多い

US-OTN --- I like scalar subQuery 8-)
select句を可変にしてみた。

US-OTN --- 表関数で配分の割当
さすがに、表関数が向いてますね。

US-OTN --- Let us share IntelliSense of SQL Statements


●2011年6月11日(土)
【セミナー動画/資料】効果的な集計処理ことはじめ
おお、model句が紹介されてるのは珍しい


●2011年6月17日(金)
US-OTN --- How the join works
旧式の結合構文での読み方と考え方

Select a.col1,a,col2,b.col1,c.col1,d.col1
  from Table1 a, Table2 b, Table3 c, Table4 d
 where a.col4 = b.col4
   and d.col4 = c.col4(+)

最初に内部結合とクロスジョインが実行される。
次に外部結合が実行される。

Select a.col1,a,col2,b.col1,c.col1,d.col1
  from Table1 a
inner Join Table2 b on a.col4 = b.col4
cross Join Table3 d
 Left Join Table4 c on d.col4 = c.col4

*************************************************************
以下サンプル

create table tA(col1 int);
create table tB(col2 int);
create table tC(col3 int);

insert into tA values(1);
insert into tB values(1);

insert into tA values(2);

select *
  from tA,tB,tC
 where tA.col1=tB.col2
   and tB.col2=tC.col3(+);

COL1  COL2  COL3
----  ----  ----
   1     1  null

select *
  from tA
  Join tB
    on tA.col1=tB.col2
  Left Join  tC
    on tB.col2=tC.col3;

COL1  COL2  COL3
----  ----  ----
   1     1  null


●2011年6月21日(火)
US-OTN --- nvl function changes dataType from char to varchar2

SQL> create table fullJoinTest1(col1 char(14));

Table created.

SQL> create table fullJoinTest2(col1 char(14));

Table created.

SQL> insert all
  2  into fullJoinTest1 values('aaa')
  3  into fullJoinTest1 values('bbb')
  4  into fullJoinTest2 values('aaa')
  5  into fullJoinTest2 values('ccc')
  6  select 1 from dual;

4 rows created.

SQL> select nvl(a.col1,b.col1) as aaaa
  2    from fullJoinTest1 a full join fullJoinTest2 b
  3      on a.col1=b.col1
  4   where nvl(a.col1,b.col1)= 'ccc';

no rows selected

SQL> create table fullJoinTest3 as
  2  select nvl(a.col1,b.col1) as "WhatIsType?"
  3    from fullJoinTest1 a full join fullJoinTest2 b
  4      on a.col1=b.col1
  5   where nvl(a.col1,b.col1)= 'ccc';

Table created.

SQL> desc fullJoinTest3
 Name          Null?    Type
 ------------- -------- ------------
 WhatIsType?            VARCHAR2(14)

SQL> create table fullJoinTest4 as
  2  select case when a.col1 is not null then a.col1 else b.col1 end as "WhatIsType?"
  3    from fullJoinTest1 a full join fullJoinTest2 b
  4      on a.col1=b.col1;

Table created.

SQL> desc fullJoinTest4
 Name        Null?    Type
 ----------- -------- --------
 WhatIsType?          CHAR(14)

マニュアルに明記されてたか・・・
マニュアル --- NVL
expr1が文字データの場合、Oracle Databaseは2つの引数を比較する前にexpr2をexpr1のデータ型に変換し、
expr1のキャラクタ・セットでVarChar2を戻します。


●2011年6月29日(水)
US-OTN --- ListAgg is useful :-)
OTNJ --- US-OTNでのトレンドなmerge文を使ってみました。


●2011年7月2日(土)
US-OTN --- Since Oracle11gR2,"recursive with clause" is supported.
マニュアルのミスを指摘してみた。


●2011年7月20日(火)
MSDN --- SQLServer2008でFirst_Value ignore nullsを模倣
US-OTN --- I like 6th parameter of RegExp_Substr 8-)


●2011年7月27日(水)
OTNJ --- 「having句のイメージ」を見ながら・・・
MSDN --- with句を使ってみました :-)
@IT --- VB.NETのmidステートメント

US-OTN --- Introduction of regular members of this forum


●2011年8月7日(日)
図でイメージするOracleのSQL全集 第5回 RollUp集計など


●2011年8月14日(日)
windows版のOracle11gR2でSQLPlusW.exeを使う方法

*********************************************************************
手順1
10gR2のサーバ(もしくはクライアント)のbinフォルダにあって、
11gR2のbinフォルダにないファイルを全て、11gR2のbinフォルダにコピー

*********************************************************************
手順2
SQLPlusW.exeを起動すると、
Message file UTILITY_MSG\spw<lang>.msb not found!
といったエラーメッセージが表示されるので、

10gR2のサーバ(もしくはクライアント)か
11gR1のサーバ(もしくはクライアント)の
sqlplus\mesg\spwja.msb
sqlplus\mesg\spwus.msb
を11gR2の該当ファルダにコピー


●2011年9月17日(土)
C#のオープンソースソフト 倉庫番をアップロードしました。

ついでに、コンテンツ増やしてみた。
6-1 DataTableのselectメソッドとComputeメソッド
6-2 DataTableに対してLINQの使用


●2011年9月23日(金)
図でイメージするOracle DatabaseのSQL全集
第6段(階層問い合わせ)準備中。
第7段(with句)は、構想を練ってる最中です。

with句の構想を練ってたら、インラインビューをwith句で記述すると、SQLを上から下に読めることに気付きました。
PostgreSQLの再帰SQLの使用例 --- 再帰のないwith句

私の愛読書、C/C++によるプログラミングスタイルブックの62ページにも、
人間はプログラムリストを上から下へという流れで見ていく。
だからこの流れに逆らわない方向での読みやすさ向上策が必要になる。
と記述されてますね。


●2011年10月1日(土)
@IT --- コマンドプロンプトのfindコマンド
コマンドプロンプトのコマンドは、telnetから実行できるので便利です。
(ローカルファイルだとEmEditでgrepしたほうがいいですが)

cd /d d:workfile
find "★" *.txt


●2011年10月5日(水)
アイコンバーの配置


●2011年10月9日(日)
拡張descコマンドなんて作ってみた
OracleSQLパズル SQLスクリプト


●2011年10月19日(水)
C#やVB.NETにおいて、
ListジェネリックやStringクラスの
Containsメソッドは、多重定義されていないが
IndexOfメソッドは、多重定義されている。(開始位置や対象数を指定可能)
MSDN --- List(T)クラス

ContainsメソッドがあるからIndexOfメソッドはイラネ
と思ってた時期がありました :-)


●2011年10月28日(金)
OTN --- Let us discussion "non recursive with clause" usage


●2011年11月13日(日)
Oracleのログファイルの格納フォルダの表示コマンド

sho parameter dump_dest

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
OTN --- which creating TableFunction method is better?
OTN --- Let us share everyone's Login.sql
OTN --- NewLineCharacter of SQL comment in Windows and Unix


●2011年11月20日(日)
OTNの記事でクエリストリングにprintOnly=1
を追加すると見たい記事だけを表示できます。

こんな感じです


●2011年11月23日(水)
PL/SQLのobject型とrecord型の違いについて
object型には初期化構文があるが
record型には初期化構文がないようだ

11gR2のマニュアル --- PL/SQLのコレクションおよびレコード
10gR2のマニュアル --- PL/SQLのオブジェクト型の使用


●2011年12月3日(土)
Analytic Functions (Transact-SQL)
SQLServer2012で分析関数が拡張されるようですね。

Lead関数とLag関数とFirst_Value関数とLast_Value関数がサポートされるようですね。
ignore nullsはサポートされないようですが

分析関数のsum関数などでのorder by指定がサポートされるようですね。
RANGE cannot be used with <unsigned value specification> PRECEDING
or <unsigned value specification> FOLLOWING.
だそうですが

中央値を求めるのに使えるpercentile_cont関数
月末の日を求めるEoMonth関数とか、
Excelにある、月末の日を求めるEoMonth関数
VB6にある、IIF関数やChoose関数も追加されるらしい。

select文でのOffSetとFetchもサポートするらしい。

MSDN --- SQLServer2012のTransact-SQLの新機能をまとめるスレッド


●2011年12月11日(日)
@IT --- .NET Frameworkのバージョンを整理する

WindowsVistaでは2.0と3.0
Windows7では2.0と3.0と3.5
がバンドルされている。


●2011年12月14日(水)
図でイメージするOracleのSQL全集 第6回 階層問い合わせ


●2011年12月15日(金)
SQLServerのSQLのサンプル集
SQLServerでの実験結果などをメモしていくサイトを作りました。


●2011年12月28日(水)
仮想列にインデックスを貼る実験

create table VirtualColTest(
ColA VarChar2(10),
VirtualCol as (RegExp_Replace(ColA,'[a-z]')) Virtual);

insert into VirtualColTest(ColA) values('1a2b3c');

create index indTest on VirtualColTest(VirtualCol);

set autot trace

select * from VirtualColTest where VirtualCol = 'X';

SQL> select * from VirtualColTest where VirtualCol = 'X';

実行計画
----------------------------------------------------------------------------------------------
| Id  | Operation                   | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |                |     1 |    19 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| VIRTUALCOLTEST |     1 |    19 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN          | INDTEST        |     1 |       |     1   (0)| 00:00:01 |
----------------------------------------------------------------------------------------------

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
MSDN --- SQLServerの分析関数の使用例の「10. 連続範囲の最小値と最大値 (3人旅人算)」を見ながら・・・


●2012年1月4日(水)
OTN --- To use "analytic function" at "recursive with clause"


●2012年1月11日(水)
US-OTN --- Nice introduction "Frank Kulash" :-)

Oracle Database正規表現内のPOSIXメタキャラクタ
ハイフン(-)は、リストの先頭または最後にある場合はリテラルで、
[#--]のように範囲正規表現にある場合は範囲終了ポイントです。
右カッコ(])は、リストの先頭にある場合はリテラルとして扱われます。

SQL> col tes1 for a20
SQL> col tes3 for a20
SQL> select
  2  regexp_replace(val,'[][-]') as tes1,
  3  regexp_replace(val,'[^][-]') as tes3
  4  from (select 'abc[]\\\---' as val from dual);

TES1    TES3
------  -----
abc\\\  []---


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