する質問をすることでしか得られない、回答やアドバイスがある。JDBCのResultSetから取得したカラムの情報を取得できます。MySQL,PostgreSQL,ORACLEでテストしたところ、以下の結果になりました。・テーブル名、MySQLは取得できるが、他は不可。・なので、MySQL以外では、同一名称のカラムがあった場合は、区別がつかない・MySQLは、別名を指定した場合、カラム名に元のカラム名、カラムラベルに別名が入るが、他は両方に別名が戻ってくる・なので、MySQL以外は別名を指定されても分からない・ORACLEやPostgreSQLで、ResultSetからテーブル名や別名を取得する方法があれば、ご教授願います。・下記サンプルはMySQLのものです。オリジンなので注意L.p("カタログ名="+meta.getCatalogName(i));L.p("クラス名="+meta.getColumnClassName(i));L.p("表示幅="+meta.getColumnDisplaySize(i));L.p("カラムラベル="+meta.getColumnLabel(i));L.p("カラム名="+meta.getColumnName(i));L.p("カラムタイプ(SQLタイプ)="+meta.getColumnType(i));L.p("カラムタイプ(DB固有)="+meta.getColumnTypeName(i));L.p("カラムサイズ="+meta.getPrecision(i));L.p("小数点以下の桁数="+meta.getScale(i));L.p("スキーマ名="+meta.getSchemaName(i));L.p("テーブル名="+meta.getTableName(i));L.p("AutoIncrement?="+meta.isAutoIncrement(i));L.p("CaseSensitive?="+meta.isCaseSensitive(i));L.p("キャッシュ値?="+meta.isCurrency(i));L.p("書き込みが必ず成功するか?="+meta.isDefinitelyWritable(i));L.p("isNullable?="+meta.isNullable(i));L.p("isReadOnly?="+meta.isReadOnly(i));L.p("whereで指定可能?="+meta.isSearchable(i));L.p("isSigned?="+meta.isSigned(i));L.p("書き込みを成功するか?="+meta.isWritable(i));}}}attachmentクリップ2気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。カラムに対するテーブル名は返ってきていませんね。インターフェイスで返ってきていない。その先を探るのは大変だと思います。自分で組み立てて叩いているのに、あえて省略し、曖昧な結果を捉えて、その次にどうしたいのでしょうか?その意図が知りたいです。質問者様は実務でされていらっしゃるようですので、既に代替策も持っているだろうし、以下、言われなくても、という話だと思いますが、他の開発者様向けに書いておきます。しているところもあるでしょう。用意すると思うのですが、SQL側の問題であるカラム名の重複を、別のレイヤーで対処するのはとても違和感があります。捉えるのが自然なやり方ではないでしょうか?また、あくまでも省略を前提で考えているのであれば、カラム名の重複が発生しても大丈夫な(一番最後を採用する等の)読み取り時のルールを作ってしまうなり、悩みを無視できる状況そのものを仕掛けとして用意してしまえば解決できます。採用するなどが方法として挙げられるでしょう。評価が高い回答ほどページの上位に表示されます。remove低評価1回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:55取得する方法が異なります。取得する方法が異なります。11:21『単純にDBの情報を取りたい』という質問に対する答えとしては、私の答えは間違いだと思います。テーブル名などの情報を得たい』という質問だと捉えて回答したのですが?私の認識が間違っておりましたら申し訳ないです。『単純にDBの情報を取りたい』という質問に対する答えとしては、私の答えは間違いだと思います。テーブル名などの情報を得たい』という質問だと捉えて回答したのですが?私の認識が間違っておりましたら申し訳ないです。12:30ご回答、ありがとうございます。忙しかったので本日になりました。質問の趣旨は、この通りです。...とするようなことはありません。背景は、11月くらいから、休みの日に、DBViewerのようなデータベースにアクセスするプログラムを作成しています。あろうがなかろうが、)カラム名だけではなく、カラムの説明も表示しようとしています。表示スペースは必要ですが、分かり易くなります。カラムの説明は、ResultSetMetaDataではなく、DatabaseMetaDataから取得することになります。それでカラムが属するテーブル名を取得したいということです。同じ理由で、別名が指定された場合も、元のカラム名とテーブル名を取得したいということです。ちなみにORACLEでは、DatabaseMetaDataからはテーブルの説明やカラムの説明は取得できず、独自のSQLを実行する必要があります。ご指摘のように、さらにJDBCベースで、カラムに対応するテーブル名を取得するのは無理かと思います。やるすれば、実行したSQLを文法解析して、DatabaseMetaDataから取得している情報と突き合わせることになります。これであれば、可能かと思いますが、ここまではやりたくないというのが本音です。ありがとうございました。ご回答、ありがとうございます。忙しかったので本日になりました。質問の趣旨は、この通りです。...とするようなことはありません。背景は、11月くらいから、休みの日に、DBViewerのようなデータベースにアクセスするプログラムを作成しています。あろうがなかろうが、)カラム名だけではなく、カラムの説明も表示しようとしています。表示スペースは必要ですが、分かり易くなります。カラムの説明は、ResultSetMetaDataではなく、DatabaseMetaDataから取得することになります。それでカラムが属するテーブル名を取得したいということです。同じ理由で、別名が指定された場合も、元のカラム名とテーブル名を取得したいということです。ちなみにORACLEでは、DatabaseMetaDataからはテーブルの説明やカラムの説明は取得できず、独自のSQLを実行する必要があります。ご指摘のように、さらにJDBCベースで、カラムに対応するテーブル名を取得するのは無理かと思います。やるすれば、実行したSQLを文法解析して、DatabaseMetaDataから取得している情報と突き合わせることになります。これであれば、可能かと思いますが、ここまではやりたくないというのが本音です。ありがとうございました。17:14その手のプログラムを作ろうとしているのであれば納得です。構文解析器を自分で一から作って文法解釈を行うのは大変な手間だと思います。いうライブラリが見つかりました。自体は取れるようです。クラスにおそらく欲しい情報は入っています。一意なカラムを求めれば解決できますよね。良いやり方もあるかもしれませんが、一応求めている機能は要求を満たすライブラリを併用すれば(細かい所は大変だと思いますが)実現のハードルは少し下げられると思います。その手のプログラムを作ろうとしているのであれば納得です。構文解析器を自分で一から作って文法解釈を行うのは大変な手間だと思います。いうライブラリが見つかりました。自体は取れるようです。クラスにおそらく欲しい情報は入っています。一意なカラムを求めれば解決できますよね。良いやり方もあるかもしれませんが、一応求めている機能は要求を満たすライブラリを併用すれば(細かい所は大変だと思いますが)実現のハードルは少し下げられると思います。10:37アドバイスをありがとうございます。MySQLではちゃんと表示されていますが、ORACLEなどで実行して、表示されなかったので、今回の質問となりました。ORACLEの場合はできないと諦めるか、アドバイスのように実装して頑張るかは、今後決定したいと思います。アドバイスをありがとうございます。MySQLではちゃんと表示されていますが、ORACLEなどで実行して、表示されなかったので、今回の質問となりました。ORACLEの場合はできないと諦めるか、アドバイスのように実装して頑張るかは、今後決定したいと思います。キャンセル完了するlink0テーブル情報などの定義情報(メタ情報と呼ばれる)はDatabaseMetaDataが扱っており、ResultSetMetaDataからではJDBCドライバによっては取得できないようです。メタ情報を取得するサンプルは以下になります。第3引数:テーブル名パターン(テーブル名を直接指定してもよい。第4引数:カラム名パターン(カラム名を直接指定してもよい。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。0JDBCにて検索したいです。頂いたご意見への回答は行っておりません。