[seasar-dotnet:1089] Re: S2Dao.NET、DBFlute - Oracleのパッケージ対応について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 10月 24日 (金) 00:00:11 JST
小林 (koichik) です.
横から失礼.
Date: Thu, 23 Oct 2008 22:23:44 +0900
From: kubo <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [seasar-dotnet:1084] Re: S2Dao.NET、DBFlute - Oracleのパッケージ対応について
> パッケージが別とはいえ同じプロシージャ名は
> 設計的に紛らわしくあまり良いことではないので、
PL/SQL のパッケージは Java のクラスに
相当するものなので,同名のプロシージャや
ファンクションが設計的によくないというのは
おかしいと思います.
PL/SQL は,言語的には Ada の影響を強く
受けているというか,SQL を埋め込み可能な
Ada もどきというか,Pro*Ada と呼んでも
まぁ嘘ではないんじゃないかみたいな言語です.
その Ada のパッケージは Java でいうと
static メンバだけのクラスみたいな感じです.
なので,PL/SQL でも異なるパッケージで同名の
プロシージャやファンクションというのは普通に
使うというか,名前を被らないようにしようという
意識をしません.
Java でクラスが別とはいえ同じメソッド名は
設計的に紛らわしくあまり良いことではない,
なんて考えないのと同じです.
例えば Oracle 標準のライブラリでも,
DBMS_CAPTURE_ADM
DBMS_CUBE
DBMS_LOGMNR_D
DBMS_LOGSTDBY
という 4 つのパッケージに BUILD という
同名のプロシージャが存在するようです.
# パラメータの数などは違う.
DBFlute で対応するしないは別として,
PL/SQL のパッケージはこんな感じと
いうことで.
P.S.
パッケージがメタデータとしてはカタログとして
取れちゃうみたいですが,本来はスキーマより
上位概念のカタログとは全く関係なくて,
スキーマ内のオブジェクトです.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
seasar-dotnet メーリングリストの案内