// Initialize the JDBC Driver
Driver driver = (Driver)Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
DriverManager.registerDriver(driver);
// Create The DB Connection
String dbUrl = "jdbc:jtds:sqlserver://[host]:[port]/[database]";
Connection conn = DriverManager.getConnection(dbUrl, "username", "password");
// Prepare and call the stored procedure
CallableStatement proc = conn.prepareCall("{ ? = call GetSomeData(?, ?) }");
// Register the ResultSet
proc.registerOutParameter(1, java.sql.Types.OTHER);
// Register Input Parameters
proc.setInt("@NumberParameter", this.messageVersion);
// If you need to set a NULL parameter
proc.setNull("@NumberParameter2", java.sql.Types.INTEGER);
// Execute the stored procedure
proc.execute();
// If we have a ResultSet
ResultSet rs = proc.getResultSet();
if(rs.next())
{
// Dump the XML message from the ResultSet BLOB field to the file
InputStream in = null;
OutputStream out = null;
byte[] buf = new byte[1024];
int len;
// Open the XML Message (BLOB) field in the ResultSet
Clob clob = rs.getClob("LargeXMLField");
in = clob.getAsciiStream();
// Write contents of the BLOB to the output file
while((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
}