如何从DB2获取列名
我想知道如何从DB2-DB中获取表的列名 我不是说:如何从DB2获取列名,db2,ibm-midrange,Db2,Ibm Midrange,我想知道如何从DB2-DB中获取表的列名 我不是说: SELECT * FROM TABLE A; 在那里我可以得到: | ColumnA | ColumnB | ------------------------ ValueA 1 ValueB 1 ValueA 2 ValueB 2 ValueA 3 ValueB 3 但更像是: SELECT column_name FROM TABLE A; 并获得: ColumnA, ColumnB 此
SELECT * FROM TABLE A;
在那里我可以得到:
| ColumnA | ColumnB |
------------------------
ValueA 1 ValueB 1
ValueA 2 ValueB 2
ValueA 3 ValueB 3
但更像是:
SELECT column_name FROM TABLE A;
并获得:
ColumnA, ColumnB
此信息可在syscat.columns表中找到。此信息可在syscat.columns表中找到。对于DB2fori,此信息位于
qsys2.syscolumns2 (for 7.1+, better performance if just looking at 1 table's columns)
qsys2.syscolumns (for any recent version)
ODBC/JDBC和DB2LUWV8兼容
sysibm.sqlcolumns
ANSI/ISO标准
INFORMATION_SCHEMA.columns
注:信息模式是QSYS2的同义词
此处是目录视图的完整列表:
对于DB2fori,此信息在
qsys2.syscolumns2 (for 7.1+, better performance if just looking at 1 table's columns)
qsys2.syscolumns (for any recent version)
ODBC/JDBC和DB2LUWV8兼容
sysibm.sqlcolumns
ANSI/ISO标准
INFORMATION_SCHEMA.columns
注:信息模式是QSYS2的同义词
此处是目录视图的完整列表:
如果要从db400 IBM i检索任何表的列名,我们可以使用java程序检索列名。 示例代码:
String sql = "select * from KFILNBB.V_OCADATA";
PreparedStatement pstmt = StaticUtil.getDB2Connection().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rs1 = pstmt.getMetaData();
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
System.out.println(rsmd.getColumnLabel(1));
----------db2连接-----
public static Connection getDB2Connection() throws ClassNotFoundException, SQLException {
String DRIVER_NAME = "com.ibm.as400.access.AS400JDBCDriver";
String URL = "jdbc:as400://ibm i IP address";
String USERNAME = "username";
String PASSWORD = "password";
Class.forName(DRIVER_NAME);
return DriverManager.getConnection(URL , USERNAME, PASSWORD);
}
从db400 IBMi中任何表的列名,我们可以使用java程序检索列名。 示例代码:
String sql = "select * from KFILNBB.V_OCADATA";
PreparedStatement pstmt = StaticUtil.getDB2Connection().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rs1 = pstmt.getMetaData();
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
System.out.println(rsmd.getColumnLabel(1));
----------db2连接-----
public static Connection getDB2Connection() throws ClassNotFoundException, SQLException {
String DRIVER_NAME = "com.ibm.as400.access.AS400JDBCDriver";
String URL = "jdbc:as400://ibm i IP address";
String USERNAME = "username";
String PASSWORD = "password";
Class.forName(DRIVER_NAME);
return DriverManager.getConnection(URL , USERNAME, PASSWORD);
}
如果从Linux bash shell执行db2命令,另一种方法是:
$ db2 "DESCRIBE TABLE A" |awk '{printf "%s\t",$1} END{print}'
如果从Linux bash shell执行db2命令,另一种方法是:
$ db2 "DESCRIBE TABLE A" |awk '{printf "%s\t",$1} END{print}'
不适用于IBMi上的DB2,也不适用于IBMi上的DB2。