• ベストアンサー

JSPからDBのViewって見れる?

JAVA、SQLともに初心者です。 今、JSPからViewを表示させるプログラムを書いているのですが、 ふつうのTableと扱いは違うのでしょうか? 今のところ select * from V_test とやっても 「オブジェクト名 'V_test' は無効です。 」 というエラーが出てしまいます。 そこで、先輩の教えだと、alter view ViewName compile で、一度Viewをコンパイルしないとだめとの話でしたが、 どうもうまくいきません。 もしお時間ありましたら、教えていただけると幸いです。 よろしくお願いします。

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

  • ベストアンサー
  • mkim
  • ベストアンサー率67% (25/37)
回答No.1

こんにちは。 私もやったことないので、自信はないですが、できるのではないかなと思います。 理由は、「そのまま使えるサンプルコード100選 実践JDBC 」と言う本にView の作成方法が載っているからです。 お時間が許しましたら、ちょいちょいっと覗いてみて、Viewの作成方法を見て あっているか確めるのも良いかもしれません。 その手順で作成した後は、普通にTableと同じように扱えるんじゃないかなと 思います。 自信はありません。役に立たない回答で申し訳ないです。 一応、その本の概要のわかるサンプルページのURLを記しておきます。 http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1358-1

参考URL:
http://www2.gihyo.co.jp/books/bookinfo.asp?ID=4-7741-1358-1
amoamo
質問者

お礼

アドバイスありがとうございます! mkimさんが自分にとっての、初アドバイザーです(笑) 教えてもらった本見つけたら実行してみたいと思います。

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

その他の回答 (2)

  • imamu252
  • ベストアンサー率40% (2/5)
回答No.3

SQLServerは使用したことがないので詳しくは解りませんが、SQLServerのクライアントソフトから「select * from V_test」とやるのと、JDBCドライバからそれやるのと結果が違うのでしょうか?ちなみにSQLExceptionが出ていたらその内容とか教えてください。

全文を見る
すると、全ての回答が全文表示されます。
  • imamu252
  • ベストアンサー率40% (2/5)
回答No.2

SQL文でエラーになるのであればDBの設定もしくはSQL文の誤りです。ViewはTableと同じ扱いでJSPから参照できますよん。

amoamo
質問者

お礼

同じDB内にあるテーブルは表示できるのですけどね~・・・ Viewだけ見れないっていうのがめちゃめちゃわからんのです・・・ マイクロソフトのSQLsreverなんですが、 エンタープライズマネージャだと、ちゃんとViewは存在してます。 JSPに持ってきたとたんプッツリと見れないのですよ。 困った~!!

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

関連するQ&A

  • Oracleのview、synonymをCOMPILEするとはどういうことでしょうか

    現在システム開発の仕事でORACLEを扱っていますが、「alter view ~ compile」や「alter synonym ~ compile」というsql文があります。ORACLEのSQLリファレンスで調べても「compileする」としか説明がなく、自分は「プログラミング言語をcompileする=機械語に翻訳する」ということは経験上理解できるのですが、データベースでcompileするというイメージが沸きません。どなたか教えて下さい。

  • Viewを作ると遅くなる?

    Viewを作成してそのViewに対してWhere句で条件を付けて検索する場合と、 Viewを作成せずに直接Where句で条件を付けて検索する場合と、どちらが パフォーマンスがよいでしょうか? (1)Viewを使わない例 SELECT 伝票番号,伝票日付,金額 FROM 伝票 WHERE 伝票番号=1 (2)Viewを使う例  あらかじめViewを作成しておく CREATE VIEW TEST_VIEW AS SELECT 伝票番号,伝票日付,金額 FROM 伝票 以下のSQL文を発行する SELECT * FROM TEST_VIEW WHERE 伝票番号=1 このような質問をした訳は、元となるテーブルの全件を対象とした Viewを作った場合、毎回テーブルフルスキャンを行ってViewを作成 したあとにWHERE句の絞り込みを行うのかどうかが気になったから です。

  • JSPのDB接続

    いつもお世話になっております。 只今、JSPでoracleに接続しデータを表示するプログラムを作っていますが、 コンパイルエラーが出てしまい、いろいろと原因を探ってはみたものの うまくいきませんでした。ソースは以下の通りです。 <HTML> <HEAD> </HEAD> <BODY> <%@page import="java.sql.*" %> <CENTER> <% ResultSet rs = null; Class.forName("oracle.jdbc.OracleDriver"); Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/BIT21"); Statement stmt = con.createStatement(); // 実行して結果セットを取得する rs = stmt.executeQuery("SELECT * FROM BOOKMST"); // 結果セットの分だけループして表示する while (rs.next()) { %> <BR> <%= rs.getString("PICTURE") %><BR> <%= rs.getString("SALEDATE") %><BR> <%= rs.getString("PRICE") %><br> <%= rs.getString("ISBNCODE") %><BR> <BR> <% } con.close(); %> </CENTER> </BODY> </HTML> エラーは javax.servlet.ServletException: コールの引数が無効です。 と出てしまいます。 原因がわかる方どうかご教授願います。

    • ベストアンサー
    • Java
  • viewの性能

    あるテーブルがあって、Viewがそのままテーブルを参照してます。 そのViewをそのまま参照しているViewが階層的にあるとします。 テーブルA ← View1 ← View2 ← View3 [SQL的イメージは] ・creat table テーブルA (・・・) ・create view1 as select * from テーブルA ・create view2 as select * from view1 ・create view3 as select * from view2 質問したい事として、 View1 を参照するのとView3を参照するのは、View1を参照するのが 階層化が無い分、速いのでしょうか? それともそのまま参照している場合、あまり速さは変わらないのでしょうか?

  • jspでの表示の仕方

    下記のような、jspへの受け渡しができずにいます。 ご回答お願いします。 Servletは、 String query = "SELECT * FROM test"; ResultSet resultset = statement.executeQuery( query ); request.setAttribute("obj",resultset); ServletContext context = getServletContext(); RequestDispatcher rd = context.getRequestDispatcher("/kekka.jsp"); rd.forward(request,respons); とした時、jsp側で、 <%@ page contentType="text/html;charset=Shift_JIS" %> <%@ page import = "java.sql.*" %> <%! ResultSet rs = (ResultSet)request.getAttribute("obj"); %> <% While(rs.next()){String hinmei = rs.getString("hinmei");} %> <html> <head> <title>JSP</title> </head> <body> <table border="0"> <tr> <td><%=hinmei%></td> </tr> </table> </body> </html> と、したいのですが、白い画面になりjspの表示ができません。 やはり、ResultSetオブジェクトのAttributeはできないのでしょうか? それとも、jspの構文に問題があるのでしょうか? Vector、Stringは、この形のやり方で表示できたのですが・・・。 間違いを指摘してください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • ユニオンクエリをデザインビューで開くには?

    アクセス2010です。 T_テーブル1とT_テーブル2があり、 どちらもフィールド1に文字が入っています。(テキスト型です) クエリのSQLビューで SELECT * FROM T_テーブル1 UNION ALL SELECT * FROM T_テーブル2; として保存したらユニオンクエリが出来上がったのですが、 これをクエリのデザインビューで見るにはどうすればいいですか? 以前のバージョンならユニオンクエリをデザインビューで見れました。 でもやり方を忘れました。 該当のクエリをアクティブにしてデザインビューを選択しても SQLビューで開いてしまいます。

  • MySQL4でViewの代わりにできますか?

    PostgreSQLで下記のようなビューを作成し、そのビューから日付でgroupbyして日付ごとのユニーク件数を取っていました。 ---------------------------------------------- create view v_uniqcountday as select substring(datetime, 1, 8) as date, uniqid, careercd, count(*) as cnt from accesslog group by date, uniqid, careercd order by date; select date, count(*) as cnt from v_uniqcountday where (date >= xxx) and (date < xxx) group by date; ---------------------------------------------- しかし、MySQLではViewは作成できないようです。 そこでselect文のみで上記のような集計は可能でしょうか? よろしくお願いいたします。

  • jspでMysql検索で困っています。

    jspでMysql検索で困っています、 コマンド画面で下記の入力をすると条件の検索が出来ます。 select * from kanagawa where fish like '%コイ%'; (8件中検索されるのは1件でそれが表示されます) jspで命令すると、違う結果が返されてきます。 String sql; sql="select * from kanagawa where fish like '%コイ%'"; ResultSet rs=db.executeQuery(sql); 最初は変数でテーブル名等受け取っていたのですがうまくいかなかったので直接検索文を入れたのですが結果は同じく違う物が検索されてしまいます。(fishのフィールド8件中5件が結果としてでます。) 何を調べても間違いなさそうですが・・ どうにもならず困っています、助けてください、お願いします。

  • 異なるスキーマのビューを元にしたマテリアライズドビューの作成

    「所有していないマテリアライズド・ビューのマスター表にアクセスする場合は、各表に対するSELECTオブジェクト権限またはSELECT ANY TABLEシステム権限が必要です。」 ということから、selectオブジェクト権限をつけた『ビュー』をもとに、マテリアライズドビューの作成はできないのでしょうか? 例)Aスキーマが所有するTESTビュー表をもとに、Bスキーマでマテリアライズドビューを作成する。 create materialized view mview as select * from A.TESTビュー; create materialized view 権限は付与しました。 A.TESTビューに対するSELECTオブジェクト権限は付与しました。 結果としては、表またはビューがありません。とエラーがでます。 しかし、Aスキーマが所有するテーブルに対しては、問題なくマテリアライズドビューの作成はできます。 異なるスキーマの『ビュー』を元にマテリアライズドビューの作成は できない。といった記述はないのですが、実際に作成ができません。 ご教授ください。

  • MySQLのCREATE VIEWがうまく動作しません。

    SQL初心者です。今回仕事で使う事になり、Win98に MySQL Ver3.23.51をインストールしたのですが、 CREATE VIEW文がうまく動作しません。 例えば MAIN と言うテーブルが存在する時に MySQLプロンプト上で SELECT * FROM MAIN; とやるとちゃんと動作して表示してくれるのですが、 これをTEMPと言うビューを作成したい場合に CREATE VIEW TEMP AS SELECT * FROM MAIN; とやると ERROR 1064: You have an error in your SQL syntax near \'VIEW TEMP AS SELECT * FROM MAIN\' at line 1 と出て来てしまいます。文法的には間違ってないはずなのですが、何がいけないのでしょうか?MySQLはCREATE VIEW文をサポートしていないのでしょうか? 周りに詳しい人間がいないので、原因がわからなくて つまづいています。どうかよろしくお願いします.

このQ&Aのポイント
  • ドコモ光とplalaを契約して、回線工事を終えた後も多くのサイトでDNS_PROBE_FINISHED_NXDOMAINエラーが表示されます。
  • PCを再起動してもエラーが解消されないため、問題は回線やブラウザ設定にある可能性があります。
  • 解決策としては、DNSキャッシュのクリアやDNSサーバーの変更、ブラウザのキャッシュの削除などが挙げられます。
回答を見る

専門家に質問してみよう