• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSPで複数テーブルのSQL実行後に値を送る方法を教えて下さい!)

JSPで複数テーブルのSQL実行後に値を送る方法とは?

このQ&Aのポイント
  • JSPで複数テーブルのSQLを実行した後、値を送る方法について教えてください。
  • JSPでUNION ALLを使用してSQLを実行し、テーブルの「番号」と「テーブル名」を送信したいですが、どのように記述すればいいのか分かりません。
  • また、番号はオートナンバーで1から順に振られています。

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

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

JAVA上の制限より、SQLパーサの制限が先ですね。 DBによりますが、oracleなら32767バイトまでです。 ただ、そんなSQL文をJSPにべたべた書くか? というのは疑問ではあります。 そこまでこったことをするのなら、JSPだけじゃなく、外部ライブラリを呼ぶ形で結果をもらった方がいいかもしれませんね。

earlgyreprince
質問者

お礼

ありがとうございます! >ただ、そんなSQL文をJSPにべたべた書くか? おっしゃるとおりかと思います。。。 タグライブラリとか探してみます☆ 本当に参考になりました! ありがとうございました♪

その他の回答 (1)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

> 説明が分かりにくいかもしれませんが うん。。。全然わからない。 <% %>で囲まれた部分はサーバ側で動作するもので、通常タグはクライアント側にフォワードされるものだから、渡すという言葉の意味が理解できないです。 <form>タグはたくさんできてしまっていいということですか? while(rs.next())の結果は複数あるので、formがたくさんできちゃいますが、いいのでしょうか。 それなら、SELECTで"*"を使わずに、実際の必要なカラム名を指定するように、 ("SELECT 'T_2005' as tname, seq, year, number, add FROM T_2005 where ID='"+ str +"' union all SELECT 'T_2006' as tname, seq, year, number, add FROM T_2006 where ID='"+ str +"' union all SELECT 'T_2007' as tname, seq, year, number, add FROM T_2007 where ID='"+ str +"'"); とでもして、<%=rs.getString("tname")%> でテーブル名が、帰ってくるからそれをつかえばよいのでは? ※DBが書かれていないので方言があるかもしれませんが。

earlgyreprince
質問者

補足

やっぱり分かりませんでしたか・・・ すみません。。。 クライアント側にフォワードされると言う言い方をすればよかったですね。 知識が未熟で言葉が思いつきませんでした。 formはたくさんできちゃってもいいです! >("SELECT 'T_2005' as tname, seq, year, number, add FROM T_2005 where ID='"+ str +"' union all SELECT 'T_2006' as tname, seq, year, number, add FROM T_2006 where ID='"+ str +"' union all SELECT 'T_2007' as tname, seq, year, number, add FROM T_2007 where ID='"+ str +"'"); この様なやり方があるんですね?なるほど! テーブルは例で書いたのですが本当はDB1つにつき50カラム程あります。 長いSQLでも特に問題のないものなのでしょうか?? たびたび申し訳ございません。

関連するQ&A