Oracle XEとPerlでオラクる

とりあえず小規模な環境で使うDBっていったらPostgresとかMySQL、またはSQLiteなんてのが相場ですが、友達に聞いてみたところOracle XEという無料版があるらしいです。リリースは結構前の話らしいですが。


http://journal.mycom.co.jp/column/yetanother/086/


まだベータらしいので再配布、商用利用等出来ないみたいですが、ベータが外れればそういうことも出来るみたいなので期待です。無料DBの選択肢にOracleが増えたって言うのは心強いです。
Oracleというと仕事専用的なイメージがありますけどこんな風に無償で提供してくれるといまOracleを学んでいる身としてはやっていることがそのまま生かせていい感じです。あとビュー、シノニム、トリガ、プロシージャ、シーケンスも使えていい感じです。ぜひOracleさんには商用ばかりでなくこっちの方面にももっと力を入れてほしいです。


さて、OracleXEのインストですが、何のことはない、普通のインストーラ付きのフリーソフトウエアをインストールしている感じでした。一年前くらいにMySQLをインストしたときになんかだいぶめんどくさい印象を受けた感じですが、いざXEインストすると 次へ、だけをクリックするだけでインストが終わってしまったって言うのはなんか拍子抜けな感じです。


それでもEMもどき(と私は言っています。mysqladminみたいなやつでしょうか)の操作性もそう悪くなくていい感じです。負荷をかけてトランザクション超耐えるぜ!おれSUGEEE!みたいな用途に使うことはあんまりないのが残念ですが、十分いい道具を使っている感があって満足です。


とりあえずPerlで使おうとDBD::Oracleをインストします。Winなのでppmでインストしました。インストの時なんか長い同意文が出てきました。インストでmoreでページングしながら文を読むというのがちょっと新鮮でした。


で、コンストラクタなconnect文ですが、3つ目のdbnameになに指定したらいいのかな、と思い接続文字列といったらtnsname.oraなのでみて見たら「XE」とあったので

use DBI;

my $dbh = DBI->connect("dbi:Oracle:XE", "scott", "tiger");

なんてやれば繋がるみたいです。家でも

SELECT table_name FROM user_tables

なんて打てたりしてちょっと感動です。