Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Für die Abfrage der enthaltenen Parameter bei SQLServerPreparedStatement- oder SQLServerCallableStatement-Objekten ist im Microsoft JDBC-Treiber für SQL Server die SQLServerParameterMetaData-Klasse implementiert. Diese Klasse enthält eine Vielzahl von Feldern und Methoden, die Informationen in der Form eines einzelnen Werts zurückgeben.
Sie können die getParameterMetaData-Methoden der SQLServerPreparedStatement- und SQLServerCallableStatement-Methoden verwenden, um ein SQLServerParameterMetaData-Objekt zu erstellen.
Im folgenden Beispiel wird eine offene Verbindung mit der AdventureWorks2025-Beispieldatenbank an die Funktion übergeben, die getParameterMetaData-Methode der SQLServerCallableStatement-Klasse wird verwendet, um ein SQLServerParameterMetaData -Objekt zurückzugeben, und dann werden verschiedene Methoden des SQLServerParameterMetaData -Objekts verwendet, um Informationen zum Typ und Modus der Parameter anzuzeigen, die in der gespeicherten Prozedur HumanResources.uspUpdateEmployeeHireInfo enthalten sind.
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();
}
}
Hinweis
Bei der Verwendung der SQLServerParameterMetaData-Klasse mit Prepared Statements gibt es einige Einschränkungen.
Mit Microsoft JDBC-Treiber 6.0 (oder höher) für SQL Server: Bei SQL Server 2008 oder 2008 R2 unterstützt der JDBC-Treiber SELECT-, DELETE-, INSERT- und UPDATE-Anweisungen. Diese Anweisungen dürfen jedoch keine Unterabfragen und/oder Joins enthalten.
Auch MERGE-Abfragen werden bei SQL Server 2008 oder 2008 R2 nicht für die SQLServerParameterMetaData-Klasse unterstützt. Bei SQL Server 2012 und höheren werden Parametermetadaten in komplexen Abfragen unterstützt.
Das Abrufen von Parametermetadaten für verschlüsselte Spalten wird nicht unterstützt. Mit Microsoft-JDBC-Treiber 4.1 oder 4.2 für SQL Server: Der JDBC-Treiber unterstützt SELECT-, DELETE-, INSERT- und UPDATE-Anweisungen. Diese Anweisungen dürfen jedoch keine Unterabfragen und/oder Joins enthalten. Auch MERGE-Abfragen werden nicht für die SQLServerParameterMetaData-Klasse unterstützt.