Actionsマスターオブオーアリエルはどちらかと言うとLAMP派が多いですが、最近はOracleマスターもいます。多様性は良いことです。Oracleで感心することがふたつあったので、報告します。単純化していますが、次のようなテーブルがありました。baseとderivedの列はどちらも同じ名前空間に属する値を参照しています。9baseに変化があった場合、derivedにも影響が波及します。上で例で言えば、1の指す対象(以下obj-1)に変化があれば、obj-2に変化が波及します。その変化はobj-4に波及し、更にobj-8とobj-9にも波及します。..を呼ぶ再帰コードになります。いうテーブル設計が正しいか否かはともかく、ひとつのSQLで書けることをOracleマスターに教えてもらいました。base=1から始めて波及の全てを知りたい場合、次のように書きます。9levelを表示すると、再帰コードと同じことが内部で起きていることが分かりやすくなります。3levelを使って、再帰を打ち切ることもできます。2再帰が循環して終わらない場合、次のようなエラーになります。data次のようにnocycleをつけると、循環があっても終わります。次のようなテーブルがありました。300ある値のidの行が存在すればその行を書き換え、存在しない場合は新しい行を挿入したくなりました。いうテーブル設計が正しいか否かはともかく、mergeでできます。次のようにid=4,val=400でmergeすると、行が存在しないのでinsertが走って新しい行を挿入します。400この後、id=4,val=450でmergeすると行が存在するので、updateが走って既存行を変更します。450アリエルには、ボラクルとか言ってOracleをバカにする人が多いですが、マスターの言葉に耳を傾けることも必要なようです。話は飛びますが、「標準技術は良いことだ」と言う人がいます。この言葉自体に異論はありませんが、だからと言って、「独自技術や独自拡張は悪い」と言うのは短絡的過ぎます。標準技術の対極としてMSを持ち出して、MSの独自技術はけしからん、と言う主張には同意できません。良い技術もあれば悪い技術もあります。第一、MSの独自拡張なんてかわいいもので、GNUの独自拡張の方がずっと過激だったりします。標準技術に従うことは良いことですが、MSやGNUのような過激派もいないと技術が進歩しない側面があります。Oracleにもそういう側面がありそうです。独自技術をなんでも受け入れる態度は、独自技術を全否定する態度と変わりません。技術の善し悪しを判断するのは個人の責任です。その結果、残る技術もあれば消える技術もあります。ぼくは絶対的な価値観の元、残る技術と消える技術が決まるとは思っていません。結果は微妙な歴史の帰結です。ある価値観で残る技術が決まるのはなく、残った技術で価値観が決まると思っています。14:17ちょうど、上記のような再帰的な処理を実装していた。助かりました、サンキューです。ちなみに元気ですか?近いうちに遊びにいきたいと思いますが、なかなか日を決められなくて。00:12ここで予定の調整をするのも変なので、メールください。ちなみに、平日なら、約束無しでいきなり来ても、別に問題ありません。