Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从DB2获取列名_Db2_Ibm Midrange - Fatal编程技术网

如何从DB2获取列名

如何从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 此

我想知道如何从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

此信息可在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。