- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#y8b7236f]
#contents
*カラム一覧を取得するわけなんだけど、 [#k891bb57]
文字列の
-COLUMN_NAME
とかって、どうやって知り得るのかわかんなかったので、Googleで検索してみました。
**大体こんな感じ [#c08fcac3]
PerlのSQLiteのサンプルコードを参考にする
http://cpansearch.perl.org/src/ADAMK/DBD-SQLite-1.29/lib/DBD/SQLite.pm
TABLE_CAT
TABLE_SCHEM
TABLE_NAME
COLUMN_NAME
DATA_TYPE
TYPE_NAME
COLUMN_SIZE
BUFFER_LENGTH
DECIMAL_DIGITS
NUM_PREC_RADIX
NULLABLE
REMARKS
COLUMN_DEF
SQL_DATA_TYPE
SQL_DATETIME_SUB
CHAR_OCTET_LENGTH
ORDINAL_POSITION
IS_NULLABLE
**型名らしき説明が掲載されているURL [#tc3af60f]
***IBMのDB2 [#ic9b8ce9]
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/db2/rbafzmstcatalogodbc.htm
***Googleコードより、rubyのサンプルコード [#a074a2a7]
http://code.google.com/p/rubeus/source/browse/trunk/lib/rubeus/jdbc/column.rb?r=237
***SQL Server 2005チックな説明 [#o0aa1341]
https://blogs.msdn.com/b/sqlserverfaq/archive/2009/10/30/sp-columns-take-longer-in-sql-server-2005-sp3-compared-to-sql-server-2000.aspx
***ODBC スキーマ コレクション (ADO.NET) [#dbe67885]
http://msdn.microsoft.com/ja-jp/library/cc668760.aspx
***Symfoware [#h9ee02fe]
http://software.fujitsu.com/jp/manual/manualfiles/M100006/J2X02268/09Z202/J2268-e-03-04.html
***SQLLite [#h07dd2fb]
http://d.hatena.ne.jp/miyohide/20100317
*カラム一覧を得る [#q8365a01]
package base;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class HelloColumnList {
public static void main(String[] args) {
try {
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection("jdbc:odbc:helloworld");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
DatabaseMetaData dmd = con.getMetaData();
ResultSet rs = null;
rs = dmd.getColumns(null, null,"HELLO_WORLD_TABLE",null);
try {
while(rs.next()){
System.out.println(rs.getString("COLUMN_NAME") + "\n");
}
} finally {
rs.close();
}
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}