• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ビュー表等の修正について)

ビュー表の修正について

このQ&Aのポイント
  • Access2002とOracle9.2で作成したシステムにおいて、レポート作成のためのODBCリンクテーブル(ビュー表)の項目を増やしたいが、保存できないというエラーが発生しています。
  • 初心者のため、書き込み方法に不備があり、質問内容がわかりづらいかもしれませんが、お願いします。
  • ビュー表の修正に関して、Access2002とOracle9.2のシステムでODBCリンクテーブルの項目を増やす方法についての質問です。

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

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

別カテで回答した者です。 ちょっと補足をお願いします。 前便で書いたとおり、私は質問から 「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を参考にしてください。

参考URL:
http://www.jade.dti.ne.jp/kamada/access_and_postgres/pass_through_query.htm
To-y_To-y
質問者

お礼

別カテゴリでも回答いただき、また、ここでもご親切に回答いただき感謝申し上げます。 素直に社内の情報処理担当に教えをこおうと思います。

To-y_To-y
質問者

補足

(1)ORACLE側のオブジェクトはこれから修正するのか修正済みなのか? A.これから修正します。 (2)修正するとしたら、それはORACLEのテーブルかVIEWか? A.ORACLEのVIEWです。 (3)Access以外でORACLEに接続する術があるか? A.あります。 (4)そのMDB(システム)を作成した部署や会社に連絡は可能ではないのか? (また、ORACLE側の定義を勝手に修正しても大丈夫なのか?) A.連絡可能です。 勝手には修正しません。 話をするにも私自身が不勉強なので、修正方法等を知りたいのです。 社内的なことまでご心配いただき、痛み入ります。 (Accessテーブルのように既存のビューをみながら追加・修正等できないものなのでしょうか?)

その他の回答 (2)

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.3

#2さんへの補足から、Oracleビューの変更を未だしていないようなので、#2さんが例として挙げているSQLをSQL Plus等で実行して変更してください。 その後MDBファイルを開き、変更しようとしているリンクテーブルを一旦削除します。 (変更対象テーブルを右クリックし、削除を選択) そして新規にリンクテーブルを作成します。 (「新規作成」ボタンをクリック  「テーブルのリンク」を選択してOK  ファイルの種類から「ODBC データベース」を選択  データソース名から接続しているデータベースを選択してOK 通常データベース名  ユーザ名とパスワードを入力してOK  リンクしたいビュー名を選択してOK 毎回パスワードを聞かれないようにするなら「パスワードの保存にチェックをいれる これでリンクテーブルが作成されます。作成前と名前が異なる場合は、右クリックから「名前の変更」でテーブル名を変更してください。

To-y_To-y
質問者

お礼

回答ありがとうございました。 素直に社内の情報処理担当者の教えを請おうと思います。 私には至難の業だったようです。

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.1

リンクテーブルの参照先ビューの定義は既に変更してあるのでしょうか? リンクテーブルは、参照先ビューの定義を作成時にコピーしているだけなので、既に変更済みであれば、一度そのリンクテーブルを削除し、もう一度リンクテーブルを作成しなおせば変更されます。 未だ変更してない場合、先にOracleで参照先ビューを作成しなおす必要があります。その後改めてリンクテーブルを作成しなおしてください。

To-y_To-y
質問者

補足

早速の回答ありがとうございました。 [技術者向]のカテゴリに質問したものの初心者なもので、ご指導いただいた「未だ変更してない場合、先にOracleで参照先ビューを作成しなおす必要があります。」の方法がわからずにおります。 お手数をおかけして申し訳ございませんが、ご教授いただければ幸いです。

関連するQ&A