sql >> Base de Datos >  >> RDS >> Sqlserver

Llame al procedimiento almacenado con un parámetro con valores de tabla de Java

Esto se documenta aquí en el manual del controlador JDBC. En tu caso, tendrías que hacer esto:

try (SQLServerCallableStatement stmt =
    (SQLServerCallableStatement) con.prepareCall("{call test(?)}")) {

    SQLServerDataTable table = new SQLServerDataTable();   
    sourceDataTable.addColumnMetadata("n", java.sql.Types.INTEGER);   

    sourceDataTable.addRow(9);
    sourceDataTable.addRow(12);
    sourceDataTable.addRow(27);
    sourceDataTable.addRow(37);

    stmt.setStructured(1, "dbo.integer_list_tbltype", table);  
}

También he documentado esto recientemente en un artículo.