共用方式為


使用參數中繼資料

下載 JDBC 驅動程式

若要查詢 SQLServerPreparedStatementSQLServerCallableStatement 物件有關其所包含的參數,Microsoft JDBC Driver for SQL Server 會實作 SQLServerParameterMetaData 類別。 此類別包含以單一值格式傳回資訊的許多欄位與方法。

若要建立 SQLServerParameterMetaData 物件,您可以使用 SQLServerPreparedStatement 與 SQLServerCallableStatement 類別的 getParameterMetaData 方法。

以下範例中,將 AdventureWorks2025 範例資料庫的開啟連線傳遞到函式中,使用 SQLServerCallableStatement 類別的 getParameterMetaData 方法回傳 SQLServerParameterMetaData 物件,接著使用 SQLServerParameterMetaData 物件的各種方法顯示 HumanResources.uspUpdateEmployeeHireInfo 儲存程序中參數的類型與模式資訊。

public static void getParameterMetaData(Connection con) {
    try(CallableStatement cstmt = con.prepareCall("{call HumanResources.uspUpdateEmployeeHireInfo(?, ?, ?, ?, ?)}");) {
        ParameterMetaData pmd = cstmt.getParameterMetaData();
        int count = pmd.getParameterCount();
        for (int i = 1; i <= count; i++) {
            System.out.println("TYPE: " + pmd.getParameterTypeName(i) + " MODE: " + pmd.getParameterMode(i));
        }
    }
    // Handle any errors that may have occurred.
    catch (SQLException e) {
        e.printStackTrace();
    }
}

注意

搭配備妥的陳述式使用 SQLServerParameterMetaData 類別時有一些限制。

使用 Microsoft JDBC Driver 6.0 (或更高版本) for SQL Server:使用 SQL Server 2008 或 2008 R2 時,JDBC 驅動程式支援 SELECT、DELETE、INSERT 與 UPDATE 陳述式 (只要這些陳述式不包含子查詢及/或聯結)。

使用 SQL Server 2008 或 2008 R2 時,對 SQLServerParameterMetaData 類別也不支援 MERGE 查詢。 若是 SQL Server 2012 及更高版本,則支援具備複雜查詢的參數中繼資料。

不支援擷取加密資料行的參數中繼資料。 使用 Microsoft JDBC Driver 4.1 或 4.2 for SQL Server:JDBC 驅動程式支援 SELECT、DELETE、INSERT 與 UPDATE 陳述式 (只要這些陳述式不包含子查詢及/或聯結)。 SQLServerParameterMetaData 類別也不支援 MERGE 查詢。