"日本語" de ストアド Tweet
少なくなったとはいえ、今でも、日本語(マルチバイト文字でと言ったほうがいいかもしれない)で表名や列名などを定義したがる方達がいるのですよ。
Oracleでは、""(引用識別子)で囲めば正式にサポートされているわけですから、”利用できるか” といえば、「はい」というのは正しい答えであるわけです。
日本語を用いる理由としては、日本人なら直感的に理解し易い、論理名と同じで理解し易いからだとか。(それ以外の理由を聞いたことがない。。)
本当にそうでしょうか? 日本語で書こうが、英語で書こうが、意味が分かりづらい名称を付けてしまえば同じ事だと思うのですが。。。
マルチバイトで表名や列名を定義した場合の利点と欠点を比べた場合、欠点のほうが多いという事実があるにも関わらず、頑にマルチバイトのオブジェクト名に固執する方には出会ったことはないですが、既存システムで、数百もある表名と列名全てがマルチバイトで定義されているというシステムに不運にも遭遇したことはあります。
その事実を知らされたとき、「そこまで、日本語を使いたいんだったら、スドアドプロシージャ名も日本語で書けや〜〜〜っ!」、と怒鳴りたい気持ちと、暗い穴の中に落ちていく感覚が・・・・・「あ〜〜〜〜〜〜〜っ!」。 orz。
さらに、部屋の反対側で、ソースコードを編集している姿が目に映る。DISPLAYを遠くから眺めると、DISPLAYには以下のような模様が(間違いなくプログラムだと思うが模様に見えた)・・・・・・。そして、その模様はWINDOWをかなりスクロールしても終わらないようだった・・・・・・・模様としては美しいかな。(かなり引きつりならが、苦笑い。)
**********************
*********************
********************
********************
*******************
*******************
******************
*******************
********************
*******************
******************
*******************
*******************
********************
********************
*********************
**********************
**********************
*********************
********************
********************
*******************
*******************
******************
*******************
********************
*******************
******************
*******************
*******************
********************
********************
*********************
**********************
という思い出話とともに、”日本語" de スドアド をやってみましょう。
こんなことやらないとは思いますが、良い子の皆さんは、危険ですので、絶対にやらないでくださいね。念のため。(笑)
> conn / as sysdba
接続されました。
SYS> create user pleco identified by zebra
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
ユーザーが作成されました。
SYS> grant connect,create procedure to pleco;
権限付与が成功しました。
SYS> conn pleco
パスワードを入力してください:
接続されました。
PLECO>
PLECO> CREATE OR REPLACE FUNCTION "おりゃ"
2 RETURN VARCHAR2 AS
3 BEGIN
4 RETURN 'マルチバイトのプロシージャ名';
5 END;
6 /
ファンクションが作成されました。
PLECO>
PLECO> col "おりゃ" for a40
PLECO> select "おりゃ"() as "おりゃ" from dual;
おりゃ
----------------------------------------
マルチバイトのプロシージャ名
PLECO>
PLECO> CREATE OR REPLACE PROCEDURE "おりゃおりゃ"
2 AS
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE('マルチバイトのプロシージャ名');
5 END;
6 /
プロシージャが作成されました。
PLECO> set serveroutput on
PLECO> execute "おりゃおりゃ";
マルチバイトのプロシージャ名
PL/SQLプロシージャが正常に完了しました。
PLECO>
さらに、Oracle SQL Developer 1.0 for MacOSXでもやってみた。そこまでしなくても・・・・。
(Oracle SQL Developer 1.0 for MacOSXで、どこまで出来るのか試したかったというのが本音だったりして。。)
ところで、Oracle SQL Developer 1.0 for MacOSX では、スプラッシュを表示する設定になっていてもスプラッシュがでません。(Windowsや、Linuxでもそうなんだろうか? --> 自分で試せば早いのだが。。)
それにしても、ココログの管理画面が重たい。。バージョンアップの影響とのことだが。。これまたクレーム処理が大変だろうなぁ。大きなトラブルのあとだけに。。。
| 固定リンク | 0


コメント