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

●2008年9月4日(木)
OracleのXMLの学習

12月発売の、Laurent Schneiderさんの本
Oracle XML DB
Oracle XML DB開発者ガイド
ORACLE/オラクルSQLリファレンス(SYS_XMLGEN)


●2008年9月5日(金)
range query --- I solved same question
Helpful Answerで5ポイントgetしました。
気長に、200ポイントのJourneymanを目指そうと思います。
私は、Oracle ACEなので、アイコンがJourneymanになることはありませんが


●2008年9月6日(土)
Oracle ACEの認定をいただいてから3ヶ月たち、
学習目標のない生活に退屈してきたので、
次の学習目標をブログで宣言してみる。

12月発売の、Laurent Schneiderさんの本を読むという、英語を学ぶ実に明確な目的ができた、
この好機に、TOEIC600点も目指しつつ、英語を学びます。
TOEICで600点とる試験日は、2009年3月15日と宣言

英語は、中学からやり直そうということで、中学総合的研究 英語を買ってきました。

洋書は、amazonで買えるんですね
Amazon.co.jp: Advanced Oracle SQL Programming: Expert Guide to Writing Complex Queries 


●2008年9月7日(日)
正規表現の問題集1(基本編)

正規表現ならではの使いどころは、
・CSVファイルやログファイルのデータチェック
・grep
・エディタで強調表示のパターン指定
・エディタの検索
・エディタでテキストファイルを編集
・SQLのselect文
などですね。

昔の私に言いたいことなのですが、
PGの実際の開発業務(コーディング)では、
・手続き型言語(Ruby,Java,VB2005,Perlなど)
・SQL
・正規表現
をどう組み合わせるのが開発効率が高いかを考えた上で実装して下さい。
なんでも手続き型言語でやったりとか、
なんでもSQLでやったりとか、
なんでも正規表現でやったりとかは、
開発効率が悪いと思いますねぇ


●2008年9月10日(水)
US-OTNのオーストリアの正規表現の名人のCDさんから学んだ
選択と後方参照の使い方

5-24 置換を使ってCSVからデータ抽出
10-264 正規表現のリキャプチャ
10-267 RegExp_Replace関数で区切りデータより抽出


●2008年9月15日(月)
TOEICのサンプル問題
難易度が高いことに気づいた。
半分以上の単語が分かりませんが、頑張るところは頑張り
楽しむところは楽しんでいこうと思います。

はじめて受ける新TOEICテストパーフェクト攻略


●2008年9月16日(火)
5-25 全称肯定命題と存在否定命題
正規表現での命題論理を考えてみました。


●2008年9月22日(月)
Introduction to regular expressions


●2008年9月25日(木)
OTN Japanが目指す方向性 (OTN Japan TechBlog)
Oracle ACEに認定された方には、ぜひOTN-Japanで記事を書いていただきたいです。

OTN-Japan事務局長におだてられたら、OTN-Japanで記事を書かざるを得ない :-)
ということでOTN-Japanで記事を書こう!と思うのですが、
Oracle Databaseの、SQLとPL/SQLの記事しか書けそうにありませんし、CodeZineとかぶらないネタということで
OTN-Japan掲示板の、SQLの質問の傑作選を記事として書く構想はあるのですが、
これってSQLの横割りの技法(分析関数,階層問い合わせ,ブール代数,集合演算,Model句などを組み合わせて使う)
なのです。

そんなわけで
CodeZineでの縦割りの技法の1つの分析関数が終わったら、
次の縦割りの技法は、何にしようか考え中。

縦割りが終わってから横割りの予定なので
OTN-Japanで記事を書くのは、1年後ぐらいになりそうだ・・・

google検索 数学 秋山仁 横割り 縦割り


●2008年9月27日(土)
7-7 括弧問題の準備1
鬼車むずかしいですねぇ
正規表現を再帰的に考える感覚がまだ身につかない

多分、オートマトンを脳内でイメージする必要がありそうだ。


●2008年9月30日(火)
「AとBが同じ個数だけ出てくる文字列」を鬼車正規表現で表現

おお!正規表現で検索可能らしい。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
EnterpriseZine:コーナー:特集!SOA

私と同じOracleブロガーの?谷川さんの記事


●2008年10月1日(水)
Writing a Regex Book
おお!
Jeffrey Friedlさんが推薦する方が
オライリーのSQLクックブックに対応して、正規表現クックブックを執筆ですか!
実に楽しみだ。

余談ですが、私は、SQLクックブック2版の監修者の1人に著者から任命されたりする。
よりシンプルな別解を5個ほどメールしたら、任命されてしまいました :-)
著者によると2010年ぐらいに執筆開始らしい

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Regex Day Contest
正規表現コンテスト


●2008年10月2日(木)
・ナイト巡回問題
・行儀の良いナイト巡回問題

行儀の良いナイト巡回問題では、最後に元に戻れるように巡回する。
つまり、最後のマスから、最初のマスへは「ナイト飛び」で移動できるものを指す。

http://karetta.jp/book-cover/withoutprogramming
http://karetta.jp/book-node/cpuzzle-recursion/001624
http://www.cc.kyoto-su.ac.jp/~yamada/ap/backtrack.html

さて、ナイト巡回問題は、与えられたマスを、ナイトが連続して飛び続けることで、
全てのマスを1回ずつ訪れる経路を求める問題である。

となると、何手目に通ったかを記入するのが素直な考えだ。
開始マスに1、終了マスにマスの総数の25を入れると、次図になった。

 7,20,15,12, 1
14,25, 8,21,16
19, 6,13, 2,11
24, 9, 4,17,22
 5,18,23,10, 3

OracleのPL/SQLで解こうとしたけど、今の私には解けない
再帰と枝切りを学ばないと解けない気がする。

そんなわけでこの本を買ってこよう
明解Javaによるアルゴリズムとデータ構造
ナイト巡回問題を、JavaとPL/SQLで解いてみようと思います。


●2008年10月2日(木)
Oralce Ace Dinner - 2008
Oracle ACEとの宴 (OTN Japan TechBlog)

OOW 2008 サンフランシスコのOracle ACE dinnerの写真です。


●2008年10月8日(水)
TOEIC600点目指して、英文法をマスターしつつあります。
といってもまだ、中学英語なんですが

日本人Oracleブロガーな方の、英語ブログにリンクしてみる :-)

S/N Ratio 2nd (by SATO Naoki)
Masa Sasaki's Blog


●2008年10月9日(木)
Hi everyone.
I have decided to write English blog,
Because I will study English.

Although I suppose that I will take a lot of English mistake,
It is effective to study.

Maybe my idea will change and I will write Japanese blog.

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
My profile

I am an OracleACE.
I am interested in OracleDatabase,SQL(Oracle,DB2,SQLServer,MySQL,PostgreSQL),
Regex,Perl,Java,Ruby,algorithm,math and English.

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

I think these are NOT "case statement"
Oh it seems that my question is beautifully thrown.
Hahaha I am sure that "beautifully thrown" is English made by Japan.
In Japanese language, "beautifully thrown" called "Karei ni Suruu".

By the way
PL/SQL has case statement.
CASE 文 - オラクル・Oracle PL/SQL 入門


●2008年10月10日(金)
Hehehe I will learn Perl to use new feature of Regex.

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

In these three holidays,
I wlll spend to read RubyBook and to study English and to write two articles of CodeZine.

I must finish to read RubyBook
and write one article of CodeZine.

The article of CodeZine is "shock of OLAP Part6".
Another is "OLAP on MySQL Part1".


●2008年10月11日(土)
Oracle ACE's in Action

I am glad and I will share more informations.

>What they shared in common was a deep expertise in specific areas of Oracle technologies.
>The other common element was their involvement in sharing their expertise in different ways
>by presenting,teaching, responding to questions on forums, and writing articles.

And I hope that Oracle ACE dinner show will be held in Japan :-)
For example next OOW 2009 Tokyo ;-)
I will wear Oracle ACE shirt :-)


●2008年10月12日(日)
Because I will write SQLArticle on CodeZine,I installed MySQL and PostgreSQL to my PC.
Oh! MySQL and PostgreSQL is lighter than Oracle.
When I use MySQL,I use Navicat Lite.
When I use PostgreSQL,I use pgAdmin3 which is bundled.
These tools are useful and light and free.

I hope that you expect my article.


●2008年10月13日(月)
Below one is funny BatchFile whose fileName is "test.bat".
I will use similar file on my work.


/* sqlplus test/test @%0 pause exit */ desc dual select * from dict; exit


●2008年10月16日(木)
Perlの正規表現の使用例
I made sample programs of perl.
I noticed that usage of array is difficult on Perl.


●2008年10月19日(日)
About Oracle: Oracle ACE
US-OTNのSQLフォーラムでいい投稿を何度もされてるRob氏がOracle ACEに認定されました。

Rob氏といえば、私の後だしジャンケンが記憶に新しい :-)
reg small query help

Carry Forward  ---  Do you want to use "Ignore nulls" On Oracle 9i ?
analytical functions?(maybe)


●2008年10月23日(木)
insert文でwith句

create table withTes as select 1 as Col from dual;

insert into withTes
with WorkView as (select 1 as aaa from dual)
select * from WorkView;


●2008年10月28日(火)
TOEICスコアアップに最も重要な「モチベーション」 − @IT

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Javaで解いてみる。

農夫と狼とヤギとキャベツ
この問題は、8世紀にカンタベリーの大主教が提示した問題といわれている。

オオカミとヤギを連れキャベツを持った農夫が川岸にいる。
川にはボートがあるが農夫の他には動物一頭かキャベツ一個しか乗せられない。
農夫がいなければオオカミはヤギを襲うし、ヤギはキャベツを食べてしまう。

すべてを無事に対岸に渡すにはどうしたらよいか?

答え
ヤギを連れて渡る。
戻る。
オオカミを連れて渡る。
ヤギを連れて戻る。
キャベツを持って渡る。
戻る。
ヤギを連れて渡る。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

Java Solution − @IT
@IT:いまから始めるJava 第1回


●2008年10月31日(金)
分析関数の衝撃6 (応用編)

CodeZineで公開していただきました。
分析関数の衝撃シリーズは、これで1段落となります。


●2008年11月1日(土)
あれまあ
MySQLのユーザ変数で、分析関数を模倣できると思ったんですが・・・
order by句のソート順で、かつ、select句の左から順で、
評価が保証されないと、ほとんど使い道はなさそうですね。

MySQL 5.1 リファレンスマニュアル :: 8.4 ユーザによって定義された変数
>ユーザ変数の評価順序は定義されておらず、与えられたクエリ内の要素に基づいて変更されることがあります。
>SELECT @a, @a := @a+1 ...では、MySQLは@aを先に評価し次に割り当てが実行されるように見えますが、
>クエリの変更(例えばGROUP BY、HAVINGまたはORDER BY節による変更)は評価順序を変更する可能性があります。
>
>基本的なルールは、
>ステートメントの一部でユーザ変数値を割り当てないことおよび
>同一ステートメント内の他部分で同じ変数を使用しないことです。
>期待通りの結果を得られるかもしれませんが、
>これは確約されていません。

MySQL 5.1 Reference Manual :: 8.4 User-Defined Variables
>The order of evaluation for user variables is undefined and
>may change based on the elements contained within a given query.
>
>In SELECT @a, @a := @a+1 ...,
>you might think that MySQL will evaluate @a first and then do an assignment second,
>but changing the query (for example, by adding a GROUP BY, HAVING, or ORDER BY clause)
>may change the order of evaluation.
>
>The general rule is never to assign a value to a user variable in one part of a statement
>and use the same variable in some other part of the same statement.
>You might get the results you expect, but this is not guaranteed.


●2008年11月2日(日)
MySQLで分析関数を模倣3 (後編)をCodeZineに入稿しました。
次の執筆記事は、正規表現の入門です。

絵本シリーズを意識して執筆するとします。


●2008年11月3日(月)
amazonの利用方法を調べて注文する。

今の私の英語力なら2ケ月後には、なんとか読めるはず・・・

12月発売の、Laurent Schneiderさんの本
Amazon.co.jp: Advanced Oracle SQL Programming: Expert Guide to Writing Complex Queries 


●2008年11月4日(火)
UKOUG Conference Exhibition 2008

12月1日の英国のOracle ACE dinnerの招待状をいただいてしまった・・・
しかし、日本で開催されないと参加できない・・・

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

久しぶりにUS-OTNに出没してしまった・・・

Multiple distinct --- My funny solution
wmsys.wm_concat(distinct Val)の代用

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JavaRegex_Likeだけできた

exec dbms_java.dropjava('JavaRegexSource');
exec dbms_java.dropjava('JavaRegex');

create or replace java source named JavaRegexSource as
public class JavaRegex {
    public static int regex_like(String SRCSTR,String PATTERN){
        return SRCSTR.matches(PATTERN) ? 1 : 0;
    }
    //regex_replace
    //regex_substr
    //regex_instr
    //regex_count
}
/

create or replace function JavaRegex_Like(SRCSTR varchar2,PATTERN varchar2) return number
as language java NAME 'JavaRegex.regex_like(java.lang.String,java.lang.String) return int';
/

conn test/test
select JavaRegex_Like('12345','^[0-9]+.$') as res1,
       JavaRegex_Like('abcdefg','^(?=.*ab)(?=.*bc).*$') as res2,
       JavaRegex_Like('defghij','^(?=.*ab)(?=.*bc).*$') as res3,
       JavaRegex_Like('1','[0-9]') as res4
from dual;

RES1■RES2■RES3■RES4
----■----■----■----
   1■   1■   0■   1


●2008年11月5日(水)
正規表現エンジンを作ろう (1):CodeZine
じっくり読む


●2008年11月7日(金)
exists述語のselect句は、まともに評価してるのか?という実験

SQL> select version from v$instance;

VERSION
-----------------
10.2.0.1.0

SQL> select 123456
  2    from dual
  3   where exists(select power(9999,9999),1/0 from dual);

   123456
---------
   123456

SQL> select 123456
  2    from dual
  3   where exists(select dummy from dual group by 1);

   123456
---------
   123456

SQL> select 123456
  2    from dual
  3   where exists(select HIREDATE from scott.emp group by EMPNO);

   123456
---------
   123456

どうやら、exists述語のselect句は、まともに評価してないようだ。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
US-OTNでよく見るmergeの使い方
merge vs update statement

UpdatableViewは使えないが、実際は1対1で結合できる場合が使い時でしょうねぇ

別解として追加しました。
2-1-3 select文の結果を使ってupdate
4-17 最大値の行の値を、他テーブルの最大値の行の値で更新
10-107 UpdatableViewで更新
10-260 3テーブルでのUpdatableView

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
insertしたレコードをdeleteする方法
値リストを使えばコピペ中心で可能です。

create table InsDel(
PK1 number,
PK2 number,
Val number,
primary key(PK1,PK2));

insert into InsDel(PK1,PK2,Val) values(1,2,3);
delete InsDel where (PK1,PK2,Val) = ((1,2,3));

2-3. リスト比較
2-1-16 式のリストの比較その1

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
詳説正規表現3版の362ページ
Javaの正規表現の戻り読みでは、
?は使えるようだ。

select JavaRegex_Like('XA'   ,'^X+(?<!^X?X?)(?<=^X?X?X?)A$') as res1,
       JavaRegex_Like('XXA'  ,'^X+(?<!^X?X?)(?<=^X?X?X?)A$') as res2,
       JavaRegex_Like('XXXA' ,'^X+(?<!^X?X?)(?<=^X?X?X?)A$') as res3,
       JavaRegex_Like('XXXXA','^X+(?<!^X?X?)(?<=^X?X?X?)A$') as res4
from dual;

    RES1■     RES2■     RES3■     RES4
--------■---------■---------■---------
       0■        0■        1■        0

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

正規表現の問題集2 (応用編)
CodeZineで公開していただきました。


●2008年11月11日(火)
MySQLで分析関数を模倣1 (前編)
「分析関数の衝撃」の外伝が始まってしまった。


●2008年11月17日(月)
連載:はじめMath! Javaでコンピュータ数学
カルノー図の学習に


●2008年11月18日(火)
RegExp "NOT IN" ---   I used method which I learn from CD
Regexp NOT  ---   Hahaha today I say it twice
CD氏スペシャルを使ってしまった。

(this)|.
は、正規表現の選択が、左優先だろうと最長一致だろうと問題なく使えるのです。
長い方から左に記述しているので問題ないのです。

thisは4文字にマッチし、
.は1文字にマッチし、4は1より大きいのです。

ちなみにOracleの正規表現の選択は、左優先です。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
query about TO_DATE,thanks   ---   Oh that is Japanese date format
I'm laughing out loud.  :-)

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
MySQLで分析関数を模倣2 (中編)
次回は、Lag関数とLead関数です。


●2008年11月19日(水)
CodeZineに正規表現の入門1(基礎的なメタ文字)を入稿してしまった。
次回の記事は、MySQLにしようかOracleにしようか迷ってます。


●2008年11月22日(土)
I think these are NOT "case statement"
Wow. I am glad that my opinion is accepted.


●2008年11月23日(日)
CodeZineにMySQLで分析関数を模倣4 (完結編)を入稿してしまった。

記事では、数学の必要条件についてこだわってみました。

PならばQの時
QはPであるための必要条件

8-5  移動平均を求める
select 日付,終値, (select avg(b.終値) from 終値推移 b where (select count(*) from 終値推移 c where c.日付 between b.日付 and a.日付) between 1 and 5 having count(*) = 5) as 移動平均 from 終値推移 a order by 日付; 必要条件を相関サブクエリの外に抽出 select 日付,終値, (select avg(b.終値) from 終値推移 b where b.日付 <= a.日付 -- 必要条件 and (select count(*) from 終値推移 c where c.日付 between b.日付 and a.日付) between 1 and 5 having count(*) = 5) as 移動平均 from 終値推移 a order by 日付; 相関サブクエリから必要条件を抽出すれば、チューニングとして効果があるはずです。 次回の記事は、Oracleの階層問い合わせにしようと思います。 私は、階層問い合わせのクエリを考える際に、脳内で木をイメージしますが、 それをどう記事で表すか悩むところです。 情報処理技術者試験の木の問題と、Oracleの階層問い合わせの感覚は類似してますが、 それにも言及したいです。


●2008年11月24日(月)
オラクル青山センターに招待されてしまった。
半分は、観光気分で入ってこようと思います。

7月のOracle ACEの対談企画の時は、まだ、オラクル青山センターが完成してなかったので、
オラクル青山センターに行くのは、初めてです。

オラクル青山センター
日本オラクル新社屋でラブラブ神宮外苑花火大会編

帰りに、この本を買ってこよう
新 やさしいOracle PL/SQL入門
明解Javaによるアルゴリズムとデータ構造


●2008年11月25日(火)
CodeZineの階層問い合わせの記事執筆を準備中

select oya,ID,Level
from (select null as oya,1 as ID from dual union
      select 1,2 from dual union
      select 2,3 from dual union
      select 3,4 from dual union
      select 4,5 from dual)
 where ID != 3
start with oya is null
connect by prior ID = oya;

 oya  ID  Level
----  --  -----
null   1      1
   1   2      2
   3   4      4
   4   5      5

Oracleは次のように階層問合せを処理します。
・最初に、結合(指定されている場合)が、FROM句で指定されているか、
  またはWHERE句述語で指定されているかが評価されます。
・CONNECT BY条件が評価されます。
・残りのWHERE句述語が評価されます。

Oracleが、結合条件かを自動で判断してくれるらしい。

階層問合せを使って、where句に、結合条件と行のフィルタが混ざるのであれば、
Join構文で結合してon句に結合条件を書きますが ;-)

select a.oya,a.ID,Level,b.name
from (select null as oya,1 as ID from dual union
      select 1,2 from dual union
      select 2,3 from dual union
      select 3,4 from dual union
      select 4,5 from dual) a,
      (select 1 as ID,'aaaa' as name from dual union
      select 4,'dddd' from dual) b
 where a.ID != 3
   and a.ID = b.ID(+)
start with oya is null
connect by prior a.ID = oya;

 oya  ID  Level  name
----  --  -----  ----
null   1      1  aaaa
   1   2      2  null
   3   4      4  dddd
   4   5      5  null

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Ranking based on an Indicator
英語の勉強に

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Oracle ACEのLaurent Schneiderさんの書かれた本が
amazonで買えるようになりました。
英語と、SQLについて、いろいろ学べそうだ。

Advanced Oracle SQL Programming

In amazon.co.jp, We can buy book written by Laurent Schneider.
I expect that I will able to study a lot of thing of English and SQL.


●2008年11月26日(水)
MySQLで分析関数を模倣3 (後編)
CodeZineで公開していただきました。
今回は、人気が高いと言われる分析関数のLag関数とLead関数です。


●2008年11月28日(金)
OTN-Japan  門外不出のOracle現場ワザ

元記事もPDFでダウンロードできたりする ;-)
2006年 OTN Japan DBマガジン定期購読キャンペーン
2007年 OTN Japan DBマガジン定期購読キャンペーン

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
リスニング上達のコツは「発音の基礎+繰り返し練習」
英語のリスニングのための書籍があると初めて知った。
学ぶことが多いですねぇ


●2008年11月29日(土)
OracleXEに関する座談会
でオラクル青山センターに行ってきました。
OracleXEについていろいろと語り合いました。

OTN-JapanでもOracleXEの情報を発信していきたいそうです。

日本オラクルの佐藤さんや小田さんも発信されてますよね。
Oracle Database XE 製品版リリース
Oracle XEっていいですよ

オラクル青山センター
日本オラクル新社屋でラブラブ神宮外苑花火大会編

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Oracle OpenWorld Tokyo
楽しみです。


●2008年12月1日(月)
Oracle OpenWorld Tokyo 公式サイトオープン/事前申込スタート - S/N Ratio (by SATO Naoki)

Oracle ACE dinnerは開催されるのでしょうか ;-)


●2008年12月2日(火)
REGEXP_REPLACE - Replace every occurrence of the letter in the pattern --- Hahaha I have used PL/SQL
久しぶりにUS-OTNに出没してしまった。
Javaストアドプロシージャも使ってみました。


●2008年12月4日(木)
勝ち残りSEへの分岐点

>ますます国際競争力が高まるSEにとって、
>1時間1日1週間をどのように過ごすかでその寿命と価値は大きく変わってきます。
>資格1つをとっても、計画的かつ業務に役立つものを目的に即して取得する必要があるし、
>資格取得だけの勉強ではなく、コミュニケーションスキルなどのヒューマンスキルを学ぶことも重要です。


●2008年12月7日(日)
まつもとゆきひろ×小飼弾対談 生き残るエンジニアとは? − @IT
Rubyのまつもと氏「エンジニアに安住の地がなくなってきている」と警鐘


●2008年12月8日(月)
8章 10-132 大小比較で場合分けのアレンジ問題

customerTable   ShopTable
ID  St  En    open  close  Name
--  --  --    ----  -----  ----
 1   5  23      10     22  A
 2   1   2       9     23  B
 3   9  11      22      5  C
 4  12  15      10      0  D
 5  21  22      11     12  E
 6  23  11      23     20  F

customerごとに来店可能なShopを求める。

出力結果
ID  Name
--  -----------
 1  A,B,C,D,E,F
 2  C,F
 3  A,B,D,F
 4  A,B,D,F
 5  A,B,D,F
 6  C,D,F

create table customer(ID,St,En) as
select 1, 5,23 from dual union
select 2, 1, 2 from dual union
select 3, 9,11 from dual union
select 4,12,15 from dual union
select 5,21,22 from dual union
select 6,23,11 from dual;

create table Shop(open,close,Name) as
select 10,22,'A' from dual union
select  9,23,'B' from dual union
select 22, 5,'C' from dual union
select 10, 0,'D' from dual union
select 11,12,'E' from dual union
select 23,20,'F' from dual;

解候補1
openとcloseの大小関係、staとendの大小関係で2*2=4で4通りの場合分け
解候補2
ワークテーブルを求めて共通集合が空集合でなければよいとする。
解候補3
2000/01/01 00:00からの経過時間で強引にシーケンシャル化する。

解候補1が有力そう。
境界値は、ヒットさせない扱いなので、解候補2と3は不向きかも・・・
いずれ解こう :-)


●2008年12月8日(月)
詳説正規表現3版の19ページ
>文字クラスは、また別の言語と考えるとよい。
>どのメタ文字をサポートし、それらがどうのような意味を持つかは、文字クラスの中と外でまったく異なる。

そんなわけで
正規表現のメタキャラの
[].(){}^$+*?|
を文字として検索

col tes1 for a10

select regexp_replace(val,'[.(){}^$+*?|]') as tes1
  from (select 'abc[].(){}^$+*?|\\\' as val from dual);

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


●2008年12月11日(木)
正規表現の入門1 基礎的なメタ文字
CodeZineで公開していただきました。


●2008年12月17日(水)
はじめMath! Javaでコンピュータ数学:第26回

おお、私のカルノー図を使った変形で、記事よりも簡略化できた。
      _    _          _ _
B*D+A*C*(B+D) = B*D+A*C*D

16通りの検証用SQL
select a,b,c,d,
B*D+A*decode(C,0,1,0)*decode(D,0,1,0) as MyCalc,
B*D+A*decode(C,0,1,0)*(b+decode(D,0,1,0)) as articleCalc
  from (select 0 as A from dual union select 1 from dual),
       (select 0 as B from dual union select 1 from dual),
       (select 0 as C from dual union select 1 from dual),
       (select 0 as D from dual union select 1 from dual);

なぜ場合分けが必要か
場合分けでも変形してみましょう :-)
      _    _
B*D+A*C*(B+D) を展開して、
        _   _ _
B*D+A*B*C+A*C*D

Dが1の場合
    _
B+ABC = B

Dが0の場合
  _  _    _
ABC+AC = AC

よって
      _ _
B*D+A*C*D

-------------------------------------------------------------------------
記事では、カルノー図を
3つで分けられてますが、
下記のように、2つで分ければいいのだと思います。
○○★○
○○★○
○○★○
■○★■


●2008年12月18日(木)
MySQLで分析関数を模倣4 (完結編)
CodeZineで公開していただきました。 今回は、window指定の分析関数が対象です。 分析関数の衝撃シリーズは、次の記事で1区切りとなって、 次の連載は、Oracleの階層問い合わせとなります。 正規表現の記事の連載も続けていきますが ;-)


●2008年12月25日(木)
UNIXとLinuxの学習用の技術書候補とWebサイト
自宅PCにVMware Playerの環境を作成して、技術書を読みながらいろいろいじるのが学習効率が高いと予想。
技術書は、本屋でいろいろ読んでこよう。

UNIXの絵本 〜UNIXが楽しくわかる9つの扉〜
Book:入門 vi 第6版
Book:詳解 シェルスクリプト
Book:入門 bash 第3版

VMware PlayerでLinuxを手軽に使用するには − @IT


●2009年1月3日(土)
2008年の学習の総括と、2009年の目標

2008年1月から2008年6月までで、下記の資格を取得できました。
・ORACLE MASTER Silver Oracle Database 10g
・(研修受講で)ORACLE MASTER Gold Oracle Database 10g
・Oracle ACE

2008年7月から2008年12月までは、
・CodeZineでSQLの記事を7本書けた
・CodeZineで正規表現の記事を3本書けた
・英語は、中学英語ならマスターしたと思えるようになった

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
2009年の目標の1つ目は、英語です。
目標は客観的に達成できたか確認できなければならない。ということで、
TOEICで700点を目標とします。

最終的には、日本オラクルの方々(私がお会いした方や、私がブログを読んでる方)
と同じくらいの英語力をつけたいと思います。
(それって、TOEICにして950点前後のネイティブレベルな気がしますが・・・)


●2009年1月5日(月)
Updatable views Oracle docs seems wrong --- Updatable views can not include OLAP function
年末年始の英語の勉強の成果か、英語を読む速度が上がった気がします。


●2009年1月6日(火)
OTN-Japan --- sys.ODCINumberListを使ってみました
SQLを試行錯誤する際に使えそうですね。
Laurent Schneiderさんの本は、英語を訳しつつ読んでます。

8-21 sys.ODCIVarchar2Listとsys.ODCINumberList


●2009年1月7日(水)
ALGORITHM NOTE 深さ優先探索 Depth First Search (DFS)
Oracleの階層問い合わせをPL/SQLの表関数で実装してみようと思います。
深さ優先探索で実装しようと思います。

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

フラット化する世界 [増補改訂版] (上): 
フラット化する世界 [増補改訂版] (下): 

今度、買ってこよう。

インドの衝撃でも紹介されてましたが、
インターネットによって、世界はフラットになったと思います。

以下インドの衝撃より、引用
>フラット化した世界では、もはや、地理的概念も距離も意味をなさなくなります。
>では、違いは何かというと
>頭脳だけです。

>フラット化した世界では、アメリカ人の仕事、日本人の仕事などというものはありません。
>仕事は誰のものでもなく、最も生産性が高く、最も優秀でいい結果を出せ、
>そして最も賃金の安い担い手のところにいくことになります。
>フラットな世界では"誰かが代わりにできる仕事"と"誰にも代わりのできない仕事の二つしかありません"

>フラット化した世界での仕事を手に入れるには、
>十分に頭脳を磨いておく必要があります。

US-OTNのフォーラムもフラットですね。
前は、出身国が表示されたので色々な国の人が参加してるのが一目瞭然だったのですが
range query --- I solved same question
Carry Forward  ---  Do you want to use "Ignore nulls" On Oracle 9i ?


●2009年1月11日(日)
今年の1本目となるCodeZineの記事である、
MySQLで分析関数を模倣5 (応用編) を書いてます。

今年は更に、OTN Japanで記事を書こう!と思います。


●2009年1月17日(土)
Oracle ACEプログラムオフィスから定期的にメールが届くのですが、
英語なので、なかなか読めない・・・

The Oracle ACE Program Newsletterなんて始まるらしいですね。


●2009年1月18日(日)
フラット化する世界 [増補改訂版] (上): 
フラット化する世界 [増補改訂版] (下): 
を読みました。私なりに要約すると、

------------------------------------------------------------------------
このフラット化した世界では、
誰でも安値でインフラが手に入る。
インターネットでは、個人がイノベーションを実現できる。

このフラット化した世界では、
人も会社も代替不可能でなければ生き残れない。
------------------------------------------------------------------------

英語を習得しないと、フラット化した世界に参加できないと思うので、
英語を早く習得したいですね。
TOEIC700点を目指そう!!


●2009年1月18日(日)
漢(オトコ)のコンピュータ道
MySQL中心のブログ


●2009年1月20日(火)
OTN-Japan --- model句がトレンドらしい
US-OTNのトレンドを輸入するのが、私のトレンドになってきました ;-)

OTN-Japan --- 全称否定命題  min(case when 条件 then 0 else 1 end)

10-198 existsとforallとunique


●2009年1月28日(水)
Oracle OpenWorld Tokyo 2009の
Oracle ACE特典の紹介と
"Oracle OpenWorld Unconference"の説明を受けにオラクル青山センターに行ってきました。

私も、Unconferenceのスピーカー候補者ということで、受けるとしたら、
2007年にLaurent Schneiderさんがスピーカーをされた"SQL Model"
を意識した、「SQL 分析関数」をネタにしようと思います。
分析関数の衝撃のまとめ的なネタを扱おうと思います。

Oracle ACE dinnerも開催されるかもしれないらしい :-)
Oracle ACEシャツに袖を通す時が近いようだ ;-)
Oralce Ace Dinner - 2008


●2009年1月31日(土)
[OTN Japan - TechBlast 1/31]でOracle ACEとして、紹介していただきました。
私は、Oracle ACEに日本人もアメリカ人もないとは思いますが、
日本人1人目というのは、恐れ多いですねぇ

以前のように、
日本人1人目が佐藤直生さんで、日本人2人目が私のほうが気楽なのですが :-)


●2009年2月3日(火)
英語圏の方に電車の乗り換えを聞かれたが
答えられなかった・・・

こういったことは、英語を学ぶモチベーションになりますね。

You must transfer at 駅名.
みたいな英文は浮かびましたが・・・あってるか不明


●2009年2月4日(水)
Oracle11g関連な投稿をしてみた :-)

US-OTN --- Oh, this result remains in Oracle11g
OTN-Japan --- Pivotを使ってみました


OracleMaster   TOEIC   執筆記事   オライリー   翔泳社SHOP   正規表現   ブール代数   DB2   PostgreSQL   C#