SYSとSYSTEMのデフォルトのパスワード
Oracleデータベースを作成する際に、SYSやSYSTEMのパスワードを明示的に指定しないと、
- SYS:CHANGE_ON_INSTALL
- SYSTEM:MANAGER
という、デフォルトのパスワードが設定されるらしい。11gでもこの仕様は変わっていないようだ。
ちなみに、パスワードが大文字か小文字かは、マニュアルからははっきりとしない。実験してみる必要がありそうだ。パスワードが大文字化小文字かは、11gからは非常に重要(11gからはデフォルトでcase-sensitiveなため。というか10g以前ではcase-insensitiveにしかできない)なので、マニュアルに明記されていないのは問題だろう…。
古い時代のOracleを触っている人にとっては極めて常識的な知識なのだと思うが、私は初耳だった。DBCAを使ってデータベースを作成している限り、SYSやSYSTEMには必ずパスワードを明示的に指定することになるから。
ビューに対するSQLで、ヒントを指定する
はじめに
ビューに対するSQLで、ヒントを指定したいことがある。そのような場合、グローバル・ヒントという構文を使うことができる。その内容を説明する。
なお、以下の説明で使用するSQLは、全て『Oracle Database パフォーマンス・チューニング・ガイド 10gリリース2(10.2)』からの引用である。
.NET Frameworkで、シリアル化可能なタイプセーフenumを実装する - その3(今度こそ完成?)
はじめに
昨日のエントリに対して、またもやid:zeclさんに言及いただいた。以下にその言及内容を引用する。
そうですよね。IObjectReferenceインターフェイスを利用すれば、静的クラスのシングルトンが表現できますものね。
ちなみに、IObjectReferenceインターフェイスを実装する静的クラスのシングルトンヘルパーとして作用するクラスに、
ISerializableインターフェイスを実装する必要はないと思います。SerializableAttributeさえ付加しておけばよいのではないでしょうか。
えっ、そうなの!?ということで、昨日のエントリのサンプルを、変更してみる。
アドバイスをいただいたzeclさんに、重ね重ね感謝します。
.NET Frameworkで、シリアル化可能なタイプセーフenumを実装する - その2
はじめに
以前のエントリで、今の.NET Frameworkでは、シリアル化可能なタイプセーフenumを、スマートに実装する方法はないのではないか、と述べた。それに対し、ピコピコさんから「できるよ」というコメントをいただいた。
そのアドバイスに従い実装してみたところ、見事、シリアル化可能なタイプセーフenumの実装に成功した*1。本エントリでは、その方法を示す。
なお、問題解決に繋がるコメントをいただいたピコピコさんに感謝します。ピコピコさんのコメントがなければ、私が本エントリでの実装方法に辿り着く可能性は、極めて低かったです。
また、以前のエントリにトラックバックをいただいたid:zeclさんにも感謝します。私のブログを読んでいる人は少ないはずなので、zeclさんからのトラックバックがなければ、ピコピコさんが私のブログを読まれることもなかったかもしれません。
*1:と思う。穴がないことを祈る…
複数バージョンのOracleクライアントの共存
一台のマシンに複数のバージョンのOracleクライアントを共存させる方法が、このページにある。Universal Installerの「インストールされた製品」で[環境]ボタンを押して、有効にするバージョンをリストの一番上に持ってくるそうだ。
ただ、この問題は、これで全てが解決するような単純なものではない気がする。上記の方法は、あくまで「PATH」環境変数を書き換えているだけのようだが、それ以外の設定に基づいて動作するアプリやライブラリがありそうなので。
レガシーシステムのメンテと最新システムの開発を、同時に行えるマシンを構築するのは一苦労だ*1。クライアントぐらいは、スパッとスマートに共存させてほしいものなのだが…。