Oracle 10g Express Edition でチト困った
Oracle 10g Express Edition は
AL32UTF8 WE8MSWIN1252 のみのCHARACTER SETしか使用できない
資料:
Oracle® Database Express Edition
10 Oracle Database XE Character and Language Configurations
これで非常に困った。
現在数社で連携をとってWebアプリを開発しているのだけど、
他社が作った機能の検証用テストデータとしてINSERT文が書かれたSQLファイルを送付してもらった。
いざINSERTしてみると、
ORA-12899:
列"hoge".“foo”.“bar"の値が大きすぎます
(実際: 60、最大: 40)
とOracleに怒られ、データが入らない箇所がある。
慌てて文字数をカウントしたが、データに間違いはない。
これはなんだ?と思ったところで、
思い当たったのが、DBモデルのバージョンが違うのではないか?ということ
誤解を招く言い方かもしれないので補足を書くと、
上記の違いとはDBのバージョンが違うという意味ではない、
今回のプロジェクトでは(あってはならないことなんだけども)、
客先要求の追加などで、テーブルの名前が変わったり、テーブル自体が消えてたりなどの数回のモデルチェンジが行われているのだ。
そして何度かデータの最大文字数も変更されている。
数社で連携をとって開発している中でのモデルチェンジだったので、
もしかしたら各社でバージョンが違うのではないのか?
そのバージョンでは文字数定義が違うのではないか?と思った。
細かい敬意を省くために結果を述べると**「モデルのバージョンは同じ」だった。
原因は弊社と他社のDBの差にあったのだ。
私の会社ではWindows版のOracle10gサーバーが見つからなかったので、
他社検証用として急いでOracle10g Express Editionを導入した。
無料で使える10gということでワクワクしながら環境構築していったのだが、
構築過程でサービス名が一つしか設定できないことを知る。
まぁこれは、今回プロジェクト限りで潰してもいいDBなので、問題はない。
それから上記の問題の発生である。
XEのインストールウィザードで文字コードの選択が出てこなかったので考えてなかったのだけど
(浅薄だなぁ・・・)
文字コードの差が問題だということが結果としてわかった。
現在Oracle10g正式版は何種類かの文字コードをカバーしている。
そしてデフォルトインストールすると、文字コードはSHIFT_JIS(JA16SJIS)になるのだが、
10gXEはUTF8(AL32UTF8)**がデフォルトだ、
仕様書 を見ると、WE8MSWIN1252というコードも選択出来るそうなのだがこの文字コード自体初見である。
じゃあ、何が困るのか?
プログラマな人はとっくに原因なんて分かっていると思うけど、
プログラマじゃない人も世の中にはいるわけで・・・説明を続けると、
どうやら今回のプロジェクトにおいて10gを使用している所はすべてSHIFT_JISで設計されている。
(日本国内のイントラネット的なWebシステムなのでこれはまぁ、いいんじゃないかな・・・怒る人もいるだろうけど)
そうすると型VARCHAR2での日本語全角20文字MAX文字数の設計のは
VARCHAR2 = 40[Byte]
[Tool]CVS for NT 2.5.03インストールメモ
インストール環境
サーバーサイド・クライアントサイド共に WindowsXP
CVSには「CVS for NT」を仕様(Verは2.5.03)
下記にてDL(右端にある)
[CVS
](http://www.march-hare.com/cvspro/prods.asp?lang=JP “CVS”)
実行後ウィザード内で
【Select Components】の画面で【Server Components】にチェックを入れる
他はデフォルトインストール
(考えるの面倒だったらFullインストールすればOK)
環境変数「Path」にCVS for NT のインストールディレクトリが追加されていることを確認
コントロールパネルの中に「CVS NT Server」なるものが出来上がっているので、
それをダブルクリック。
【Repository Configuration】なるタブがあるのでそれを選択。
【ADD】ボタンから新規作成
Location : CVS管理したいフォルダをインストール Name : 上記が入れば勝手にデフォルトが入力されるのでそれを採用 Description : 適当 「適用」を押すと、initialize するか聞いてくるのでOK
この作業が終わると、Location先のフォルダに「CVSROOT」というフォルダが出来る。
コマンドプロンプトを起動してパスワードを設定。
C:\適当なディレクトリ>cvs -d c:\hogehoge\hoge passwd -r Administrator -a user01
Adding user user01
New Password: [作成するユーザ(user01)のパスワードを入力]
Verify Password: [作成するユーザ(user01)のパスワードを入力]
[オプション説明]
-d : リポジトリルート
-r : Administrator権限を持っているWindowsUser名
-a : 作成するCVSのUser名
c
※社内開発とかでイントラネットなどでやる場合はパスなんてなくても困らないです。
以上で終わり、後はEclipseから接続するなりなんなりと
[Flash]Laszloよ、納品後の暇な時間を返せ。
昨日納品が一端終わって今日は暇だ。
といっても納品先から何をいってくるかわからないので待機状態なんだけどね。
ついでに言うと、明日からまた忙しくなる。
そんなわけでプロジェクトの仕様書なぞを読みつつ。
今年の初めにちょっと触ったFAME(Flashout+ASDT+MTASC+Eclipse)
でも再度触ってみようかと思いぐーぐるで検索する。
最近またFlashに興味が出てきたのだ。
FAMEは中々に面白い考え方だったので、
FAMEに関するBlogの新規エントリーが増え
FAMEコミュニティが活性化しているかと思いきや、
あらら、全然エントリーがない、一番最近のエントリーでも2005年だよ
どうやらFAMEははやらなかったようだ。
(Swifmillとの組み合わせでFAMESとかいうものもあったのになぁ)
じゃあ、EclipseでFlashを作成するような環境って今他のものはあるのだろうか?
一番今はやっているものは何かないかなぁ?
と
またまたぐーぐるにて「Flash eclipse」で検索をかける。
こんな記事を見つけた。
Ajax,Flash,Java—オープンソースで実現するリッチクライアント 第4回
さらに、そこからこんなものを見つけた。
Open Laszlo (オープン・ラズロと読むらしい)
どうやらCPLライセンスのオープンソフトみたいだ。
CPLライセンスとは・・・麻原○晃にドッペルゲンガーである。。。
って書いたら信者から殺されそうなので、
とりあえず、未来永劫無料、商用利用にあたっても
ラズロのソースコードの公開だけでいいという素晴らしいライセンスてことでOK。
さて、オープンソースであることは非常に気にいたのだけど
(ついでに名前の響きも面白い)
調べてみるとこんなものがった。
EclipseプラグインでOpenLaszlo IDEを構築する
まさに探していたものじゃーないか!
早速Open Laszoloをインストールする。
これは驚くほどさっくりといけた。
→Open Laszlo DL場所
次にIDE4ECLIPSEをインストールしようと
Open Laszlo用のEclipseプラグインを公開している
alphaWorksのサイトにいってみる→ここ
ここにあると書いてたけど・・・?あれ?無い!おいてない!
ってことでネットの海の中血眼になって探すと
LaszloJapanのフォーラムに情報があった
→これ
IDE4LASZLOのDL場所
ふぅ、これでDLできる
やっとこさIde4laszloをインストールできると思ったら。
org.eclipse.emf.ecore.resource が無いとかいって怒られた。
emf.ecoreをダウンロードしてインストール
さて次こそインストール!
必須:フィーチャー"org.eclipse.emf.ocl(1.0.0)"、または互換。
とまた怒られた。
要するに、emf.olcのバージョン1.0.0が足りてねーっていうことだ
エラーワードでググってみると、あるブログに以下プラグインを全部インストールすると解決したとあったのでぶちこむ。
org.eclipse.emf.ocl org.eclipse.emf.query org.eclipse.emf.validation org.eclipse.emf.transaction さーインストールだ。
おう・・・・
現在の構成にはエラーがあり、この操作は予測できない結果を引き起こす可能性があります。
OCL 2.0 Binding for UML (1.