- - PR -
DB2のSQL文でテーブルの名称の取り方を教えてください。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-30 09:16
他のデータベースだと以下の文でテーブル名が取得できると思うのですが
SELECT TABLE_NAME FROM CAT select name from sysobjects where xtype = 'U' DB2の場合の書き方がわかりません知っている方がいたら教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2004-11-30 09:35
http://www.db2.jp/siryo/db2online/db2s0/frame3.htm#sqlx0c26 マニュアルを読みましょうね・・・。 | ||||
|
投稿日時: 2004-11-30 09:45
TAKUさん早速のお返事ありがとうございます。
以下のエラーメッセージがでて失敗してしまいました。(TT) エラーの原因が分かる方いらっしゃったら ご教授の方よろしくお願いします。度々すいません。 プラグラム内の★の所でエラーが発生しています。 【エラーメッセージ】---------------------------------------------------------------------------------- Microsoft OLE DB Provider for ODBC Drivers エラー '80040e37' [IBM][Client Access Express ODBC ドライバー (32 ビット)][DB2/400 SQL]SQL0204 - SYSIBMのタイプ*FILEのSYSTABLESが見つからない。 /eboard/kurosawa/dbdisp_SQL.asp, 行 50 ------------------------------------------------------------------------------------------------ 環境はDB2をSQLServerを介して見に行ってます。 実行したプログラムは下にあります。 TEXTBOXにSQL文を入れるとその結果を一覧表示するプログラムです。 【プログラム】--------------------------------------------------------------------------------------- <html> <% Dim db 'データオブジェクト '★★★DB OPEN★★★ Session("Connect") = "DSN=○○○;UID=○○○;PWD=○○○" set db = server.createobject("adodb.connection") db.open Session("Connect") If Request("SQL") <> "" Then Set grec = db.Execute( Request("SQL") ) cnt = 0 %> <table border="1" width="100%"> <% Response.Write "<TR>" For i=0 To grec.Fields.Count - 1 Response.Write "<TD BGCOLOR='#66FFFF'>" & grec.Fields(i).Name & "</TD>" Next Response.Write "</TR>" Do While not grec.EOF cnt = cnt + 1 Response.Write "<TR>" For i=0 To grec.Fields.Count - 1 If grec.Fields(i) <> "" Then Response.Write "<TD>" & grec.Fields(i) & "</TD>" Else Response.Write "<TD> </TD>" End If Next Response.Write "</TR>" grec.MoveNext Loop %> 件数:<% =cnt %><BR> </table> <% Else %> <form method="POST" action="./dbdisp_SQL.asp"> <p><textarea rows="11" name="SQL" cols="71"></textarea> ★<% Set grec = db.Execute("SELECT TABNAME FROM SYSCAT.TABLES ORDER BY TABSCHEMA") %> <textarea rows="10" name="S1" cols="30"> <% Do While not grec.EOF %><% =grec.Fields(0) & vbCrLf %> <% grec.MoveNext %> <% Loop %> </textarea><BR> <input type="submit" value=" 実行 " name="B1"> <input type="reset" value=" リセット " name="B2"></p> </form> <% End If %> </html> | ||||
|
投稿日時: 2004-11-30 18:17
SQL0204Nは次のURLにありますようにオブジェクトが見つからない、というエラーです。 http://www.db2.jp/db2manual/ja_JP/index.htm?openup=core/rsql0200.htm >環境はDB2をSQLServerを介して見に行ってます。 上記がどのような構成かいまいち分からないのですが、 SQLServerを介しているから見えないということではないでしょうか。 あるいはSQLServer側で何か設定が必要であるとかいう可能性はないでしょうか。 >[IBM][Client Access Express ODBC ドライバー (32 ビット)][DB2/400 SQL]SQL0204 - SYSIBMのタイプ*FILEのSYSTABLESが見つからない。 エラーは上記のように出力されたということですが、DB2が稼動している環境はもしかしてiSeriesですか? そうすると、SYSCAT.TABLESは存在しないと思いますので、SYSIBM.SYSTABLESを直接Selectしてみるとうまくいくかもしれません。 カラム名ははっきりと覚えていません。 のでとりあえず次のコマンドを試してみてはいかがでしょう。 SELECT * FROM SYSIBM.SYSTABLES |
1