• ベストアンサー

マテリアライズド・ビューの変更

マスターテーブルの定義変更(カラム追加等)をマテリアライズド・ビューへ反映することは可能でしょうか?ご存知の方がいらしたら教えて下さい。 マテリアライズド・ビューログを作成して高速リフレッシュを行う方針ですが、マテリアライズド・ビューを読み取り専用、あるいは更新可能で作成しても、リフレッシュで定義変更は反映されませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

高速リフレッシュではデータ変更だけですね。 http://otn.oracle.co.jp/products/oracle9i/daily/003.html 高速リフレッシュでいくなら、親テーブルの定義が変更になった場合はView自体を再作成したほうがいいかと。

kirayama
質問者

お礼

早速のご回答ありがとうございました。 完全リフレッシュすると以降のリフレッシュは完全リフレッシュでなければならないようですね。 高速リフレッシュの場合は、やはり以下の手順以外に方法はないのでしょうか・・・ (1)マスター表の定義変更 (2)ログ、ビューの削除 (3)ログ、ビューの再作成

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>高速リフレッシュの場合は、やはり以下の手順以外に方法はないのでしょうか・・・ create or replaceもマテリアライズドビューだとだめみたいなんでそうなるかと。

kirayama
質問者

お礼

ありがとうございました。 メンテはなかなか面倒になりますね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • materialized view について

    oracle9i, 10g にて、materialized view を元の実表から作成し、 実表にupdate文等、データの更新があった場合にはリフレッシュで view も更新しています。 この逆で、view を(for update)属性をつけて作成してviewのデータを update文等で更新した場合、元の実表のデータにその更新を反映させる 方法はあるのでしょうか? もしあるのならば、設定方法等を教えていただきたいので、 よろしくお願いします。

  • view作成時にデータ型を変更したい(SQLServer2000)

    何度もお世話になっております。 SQLServer2000にて、現状で300近くあるテーブルデータにText型であるフィールドが複数存在ます。 今回行ないたいことは、これらテーブルのVIEWを作成 → 各テーブル内で"Text型"に定義されているフィールドを"VarChar(max)型"に変更してVIEWを作成したいのです。 この作業をあまり労力をかけずにできれば一括で処理できる方法等ありませんでしょうか?どうかよろしくお願いします。

  • Viewのカラムの長さが不明?

    はじめまして。Viewについての質問です。 とあるViewを作成し、Number型のカラムの長さを調べた所なにも表示されておらず、わからない状態になってしまいました。 元のTableのNumber型のカラムには(10,0)がセットされており同じTableを参照している別のViewには正しく(10,0)と表示されています。 カラムの長さが表示されないViewは分析関数、インラインビュー、UNIONなどを使用しているのでそれらが邪魔をしてカラムが取得できないようになってしまったのでしょうか? こう言ったケースは初めてなので分かる方いらっしゃいましたら教えてください。 以上です。よろしくお願いします。

  • MySQL5で、SUMした値を新たにカラムとして追加したビューを作成し

    MySQL5で、SUMした値を新たにカラムとして追加したビューを作成したいのですが、どういうSQLを書けばよいかわかりません。 今、Aというテーブルがあり、f1,f2,f3というカラムがあります。 このテーブルを元にvwAというビューを作成したいのですが、その際、f1でGroup Byしたf2のSUMをf2Keiというカラム名で追加し、最終的にf3とf2Keiという2つのカラムを持ったビューにしたいです。 create view vwA as select f3,select SUM(f2) as f2Kei from A GROUP BY f1 from A; と書いてみましたがエラーを返されました。 どのようなSQLを書けばよいか、ご教授ください。

  • ビューについて、教えてください

    いつもお世話になっております。 ビューについて、教えて下さい。 以下のビュー「ABVW」を作成しましたが、TBLAやTBLBの内容が変更された場合、 ビュー上のデータは自動で置き換わるのでしょうか? CREATE VIEW ABVW  SELECT * FROM TBLA UNION ALL SELECT * FROM TBLB 以上、よろしくお願いします。 ※いろいろなサイトではマテビューはリフレッシュ機能のようなものがあると書かれており、  マテビューを作成しようとしたのですが、TBLA/TBLBは”キーなし”が原因なのかは  わからないのですが、うまく作成できず、普通のビューで行うことにしました。

  • SQLServer(2005)でビューの作成がうまくいきません。

    SQLServer(2005)でビューの作成がうまくいきません。 インデックス を作成できません。ビューでは別のビュー 'View1' が参照されています。インデックス付きビューの定義で参照されるビューの定義を手作業で拡張することを検討してください。 というエラーが出ます。(参照しているビュー’View1’にもインデックスが設定されています) このエラーの回避策をご存知であれば、教えていただきたいと思います。 よろしくお願いいたします。

  • マテリアライズドビューを利用した差分実体の取得

    こんにちは。 Oralceで差分(新規・更新)があった場合に差分データ(実体)のみ取得を 行おうと下記の手順を行ったのですがうまく行きません。 ・マテリアライズドビューログを作成(デフォルト) ・読み込み専用マテリアライズドビューを作成(デフォルト) ・完全リフレッシュ(初回のみ) (反映後マテビューをTruncate) ・高速リフレッシュ(ここでエラー:ORA-32320)  以降、高速リフレッシュ間隔で差分データを取り出したい パラメータがおかしい等ご指摘お願い致します。

  • リアルタイムに他のDBにデータを反映させる方法

    現在、リアルタイムに自DBから他DBへのデータを反映させる仕組みを Oracle10gSE(Oracle10gSEone)で探しております。 OS:RedhatLinux4 ES Oracle:Oracle10.2.0.1.0SE (Oracle10gEEなら、レプリケーション機能を使って実現できそう かなとは思いますがライセンスまた私のスキルが足りないため 無理です。) 今考えていますのは Oracleのマテリアライズド・ビューを使って一定の間隔 (10秒毎、1時間毎、1日毎)でリフレッシュする方法です。 ●自Oracle ->  他Oracle ただ、自Oracle内のテーブルは50テーブル近く存在し、 レコードの件数ももっとも多いテーブルで 200万近くに及びます。(しかもカラム数は200・・・) DBサーバへの負荷も考慮し、高速リフレッシュを使うところは 使いたいと思っておりますが、この自Oracleは 他のシステムのDBもバッチプログラム、マテビュー等々で 使っているため、なるべくシンプルにしたいです。 (更新頻度が多いため、MVログを安易に作成したくありません) 設計を見直す上でも、テーブルのデータを他のDBのテーブルへ リアルタイムに(近く)反映させる方法はありませんでしょうか。 Oracleに限らず、さまざまな意見を聞けると大変ありがたいです。 よろしくお願いいたします。

  • リストビューのハンドルについて

    リストビューコントロールのハンドルについて疑問に思う事がありまして、ご教授よろしくおねがいします。 通常リストビューをCreateWindow()で作成した時に戻り値として受け取るウィンドウハンドルに対してSetWindowFont()を行うとリストビュー全体のフォントが変更されます。 リストビュー関数にはListView_GetHeader( リストビューハンドル );という関数が用意されていてリストビューのカラム部分のハンドルを取得できます。 このハンドルに対してSetWindowFont()を行うとカラム部分だけのフォントが変更されます。 という事はアイテム部分だけのハンドルを取得し、SetWindowFont()でフォントを変更する事はできるのでしょうか? ご教授よろしくお願いいたします。

  • Transact-SQLの結合??

    1コのマスタテーブルがあるとします。そのマスタのいくつかのカラムのデータを変更し、2つのテーブルに分けてはくという事をやりたいのです。今自分が考えてるのは、変更の必要なカラムと必要ないカラムに分けて、2つのテンポラリーテーブルにはいて、カラムを変更した後、変更済みと変更の必要のないカラムをもったテンポラリテーブルとを結合して、それを2つに分けてはこうと思っているのですが・・・。ほかになにかいい考えがありますか?ご教授願います。

印刷ができない
このQ&Aのポイント
  • プリンターの一時停止が解消できず印刷できない
  • お使いの環境はWindows10で無線LAN接続
  • 関連するソフト・アプリは特にありません
回答を見る