- - PR -
ストアド内でVIEWを定義
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-27 17:52
お世話になります。
環境はORACLE8.1.6です。 ストアドでサブファンクションを定義できるように、VIEWを定義することはできないのでしょうか? ストアドに渡された引数を使用してVIEWを作成したのですが・・。 理由はというとあるSELECTの実行結果をそのストアド内で何度か使用するのですが、 そのSELECTがかなり重いSELECTなのです。 なので、少しでも処理を早くしたいのですが。 ご存知の方いましたら教えてください | ||||
|
投稿日時: 2006-03-27 18:02
EXECUTE IMMEDIATE 'CREATE VIEW VIEW_A AS SELECT <省略>'; で出来ませんでしたけ? 8.1.x 以降で使えるような・・・。 ちなみに、DDLなので、トランザクションにはお気をつけください。 #遅い SELECT をVIEWにして速くなるのかな・・。 _________________ takepon てんてこダンス | ||||
|
投稿日時: 2006-03-27 18:05
パフォーマンスって事なら、Viewよりワークテーブル(一時テーブル)で検討をお勧めします
SQL Serverだとテーブル名の前に"#"や"##"を付ければ出来ます。 ORACLEって事なんで、実テーブルで作るんでしたっけ? 最近、ORACLEのジョブないから、 うろ覚え(さっそく訂正) [ メッセージ編集済み 編集者: 買太郎 編集日時 2006-03-27 18:06 ] | ||||
|
投稿日時: 2006-03-27 18:11
CERATE GLOBAL TEMPORARY TABLE ですかね。 8iから使えるみたいです。 事前に一時表を作成(セッション固有 or トランザクション固有)しておけば、 あとはストアドからでもINSERTやUPDATE,SELECTが出来ます。 トランザクション固有なら、コミットやロールバック時にデータがなくなります。 要件にあった方式で試してみてはいかがですか? _________________ takepon てんてこダンス | ||||
|
投稿日時: 2006-03-27 18:16
レスありがとうございます。
ん〜、やはりワークテーブルしかないのでしょうか・・。 実際にVIEWを作ったりせずにストアド内でのみのサブVIEWみたいなものが できればいいのですが。 無理そうですね | ||||
|
投稿日時: 2006-03-27 22:40
テンポラリテーブル
っつうか、ここ Insider.NET だし。 周辺技術って、広い。。。 |
1