- ベストアンサー
ビュー表の修正について
- Access2002とOracle9.2で作成したシステムにおいて、レポート作成のためのODBCリンクテーブル(ビュー表)の項目を増やしたいが、保存できないというエラーが発生しています。
- 初心者のため、書き込み方法に不備があり、質問内容がわかりづらいかもしれませんが、お願いします。
- ビュー表の修正に関して、Access2002とOracle9.2のシステムでODBCリンクテーブルの項目を増やす方法についての質問です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別カテで回答した者です。 ちょっと補足をお願いします。 前便で書いたとおり、私は質問から 「ORACLE側のオブジェクトは、まだ一切修正していない」 と類推しました。 これは正しいですか? それと、#1さんの書かれたように、(ORACLE側の)テーブルではなく、(ORACLE側の)ビュー、と言う事でよいですか? テーブルをODBCリンクしているだけで、Access側のクエリを「ビュー表」と呼んでいらっしゃるような気がしたのですが。。。 (違ったらごめんなさい) ORACLEの場合、AccessのようなGUIのデザイナーは(原則的に)ないので、テーブルにカラムを追加するのもビューにカラムを追加するのも、SQL文で行います。 通常は、SQL*Plus等で実行しますが、そもそもORACLEの(ネットワーククライアント以外の)クライアントはインストールされているでしょうか? と言う事で補足していただきたいのは。 (1)ORACLE側のオブジェクトはこれから修正するのか修正済みなのか? (2)修正するとしたら、それはORACLEのテーブルかVIEWか? (3)Access以外でORACLEに接続する術があるか? (4)そのMDB(システム)を作成した部署や会社に連絡は可能ではないのか? (また、ORACLE側の定義を勝手に修正しても大丈夫なのか?) まあ、(3)については、Accessで接続できているのであれば、Accessのクエリデザインから、パススルークエリを使用してORACLEのSQLを実行できるので、あまり気にしなくてもよいかもしれません。 上記に書かれた内容が、よくわからないようであれば、(4)のシステムを作成した部署なり会社なりに、まず聞くのが順番かと思います。 一応VIEWの修正方法を書いておきますが、VIEWの元ソースが必要です。 元のソースが以下であるとします。 CREATE OR REPLACE VIEW v_test AS SELECT COL1, COL2 FROM TBL; このVIEWにTBLのCOL3を表示したいのであれば、VIEWのソースは以下になります。 CREATE OR REPLACE VIEW v_test AS SELECT COL1, COL2, COL3 FROM TBL; これをAccessのパススルークエリで実行すればVIEWの定義が修正されます。 パススルーについては参照URLを参考にしてください。
その他の回答 (2)
- reset_cat
- ベストアンサー率68% (94/138)
#2さんへの補足から、Oracleビューの変更を未だしていないようなので、#2さんが例として挙げているSQLをSQL Plus等で実行して変更してください。 その後MDBファイルを開き、変更しようとしているリンクテーブルを一旦削除します。 (変更対象テーブルを右クリックし、削除を選択) そして新規にリンクテーブルを作成します。 (「新規作成」ボタンをクリック 「テーブルのリンク」を選択してOK ファイルの種類から「ODBC データベース」を選択 データソース名から接続しているデータベースを選択してOK 通常データベース名 ユーザ名とパスワードを入力してOK リンクしたいビュー名を選択してOK 毎回パスワードを聞かれないようにするなら「パスワードの保存にチェックをいれる これでリンクテーブルが作成されます。作成前と名前が異なる場合は、右クリックから「名前の変更」でテーブル名を変更してください。
お礼
回答ありがとうございました。 素直に社内の情報処理担当者の教えを請おうと思います。 私には至難の業だったようです。
- reset_cat
- ベストアンサー率68% (94/138)
リンクテーブルの参照先ビューの定義は既に変更してあるのでしょうか? リンクテーブルは、参照先ビューの定義を作成時にコピーしているだけなので、既に変更済みであれば、一度そのリンクテーブルを削除し、もう一度リンクテーブルを作成しなおせば変更されます。 未だ変更してない場合、先にOracleで参照先ビューを作成しなおす必要があります。その後改めてリンクテーブルを作成しなおしてください。
補足
早速の回答ありがとうございました。 [技術者向]のカテゴリに質問したものの初心者なもので、ご指導いただいた「未だ変更してない場合、先にOracleで参照先ビューを作成しなおす必要があります。」の方法がわからずにおります。 お手数をおかけして申し訳ございませんが、ご教授いただければ幸いです。
お礼
別カテゴリでも回答いただき、また、ここでもご親切に回答いただき感謝申し上げます。 素直に社内の情報処理担当に教えをこおうと思います。
補足
(1)ORACLE側のオブジェクトはこれから修正するのか修正済みなのか? A.これから修正します。 (2)修正するとしたら、それはORACLEのテーブルかVIEWか? A.ORACLEのVIEWです。 (3)Access以外でORACLEに接続する術があるか? A.あります。 (4)そのMDB(システム)を作成した部署や会社に連絡は可能ではないのか? (また、ORACLE側の定義を勝手に修正しても大丈夫なのか?) A.連絡可能です。 勝手には修正しません。 話をするにも私自身が不勉強なので、修正方法等を知りたいのです。 社内的なことまでご心配いただき、痛み入ります。 (Accessテーブルのように既存のビューをみながら追加・修正等できないものなのでしょうか?)